2017-01-28 5 views
0

Я пытаюсь изучить Python через tweepy. Простые боты довольно просты.Тестирование, если поле NONE с tweepy

Я создал один для поиска слов, но я хочу знать город, из которого происходят твиты.

В качестве теста, у меня есть этот кусок кода:

if ' trump ' in status.text.lower(): 
    print status.coordinates 
    print ('geo'), status.geo 
    print status.text 

Но я вижу, что координаты и гео не все Ни.

Как я могу проверить, нет ли значения, и не видеть эти результаты?

+2

Вы можете проверить, чтобы увидеть, если значение none with, err, 'if value is None:'. – jonrsharpe

+0

Я добавил следующее: , если status.coordinates! = "None" print status.coordinates, но он показывает синтаксическую ошибку. Я пробовал «и», но оба не будут работать. Любые предложения? – user6230466

+0

Вам не хватает двоеточия. Также вы должны использовать идентификатор ('is' /' is not') не равенство ('=='/' ! = ') для сравнения с« Нет », так как это синглтон. – jonrsharpe

ответ

0

Я могу предложить вам два возможных пути:

  1. Вы можете добавить условие в вашей, если заявление следующим образом:

    if 'trump' in status.text.lower() and status.coordinates is not None: 
    

    Нет не является строкой, так что это причина, потому что ваш код (if status.coordinates != "None") вызывает синтаксический эффект.

  2. Не изменяйте и не добавляйте что-либо в случае условия и не печатайте значение, только если оно не является ничем.
    Возможный способ сделать это состоит в следующем:

    if status.coordinates is not None: 
        print status.coordinates 
    

    или

    if status.coordinates: 
        print status.coordinates 
    

    и полный сценарий:

    if 'trump' in status.text.lower(): 
        if status.coordinates is not None: 
         print status.coordinates 
        if status.geo is not None: 
         print ('geo'), status.geo 
        print status.text 
    
+0

Это работает. Теперь мне нужно очистить весь« Файл »again2.py», строка 24, в on_status writer.writerow ([status.geo, status.coordinates, status.text]) UnicodeEncodeError: кодек 'ascii' не может кодировать символ u '\ u2026' в позиции 118: порядковый номер не в диапазоне (128) ". – user6230466

+0

Рад помочь вам! В любом случае, я не очень хорошо понимаю ошибку в вашем комментарии, я предлагаю вам открыть еще один вопрос с более подробной информацией. Если мой ответ решил вашу первую проблему, отметьте ее, чтобы быть полезной для других пользователи с той же проблемой. – Giordano

 Смежные вопросы

  • Нет связанных вопросов^_^