Фильтр Twitter Streaming API - Фильтр по местоположению Получение ошибки - Для фильтра по работе работает правильно - PullRequest
0 голосов
/ 18 февраля 2019

Я использую Twitter API для получения потоковых данных

for tweet in api.GetStreamFilter(locations=-122.75,36.8,-121.75,37.8):
    print (tweet)
    break

и получаю сообщение об ошибке при попытке фильтрации по местоположениям

File "<ipython-input-28-51193e42f674>", line 2
    for tweet in api.GetStreamFilter(locations=-122.75,36.8,-121.75,37.8):
                                                      ^
***SyntaxError: positional argument follows keyword argument***

Если я используюфильтр для слова

for tweet in api.GetStreamFilter(track = 'Facebook'):
    print (tweet)
    break

работает правильно.

Когда я использую местоположение, я получаю сообщение об ошибке.

Я следую за

https://developer.twitter.com/en/docs/tweets/filter-realtime/guides/basic-stream-parameters

и там указано местоположение

Parameter value             Tracks Tweets from...
-122.75,36.8,-121.75,37.8   San Francisco
-74,40,-73,41               New York City
-122.75,36.8,-121.75,37.8,-74,40,-73,41 
                            San FranciscoOR New York City

Обновление

Я получаю сообщение об ошибке ниже

введите описание изображения здесь

TypeError                                 Traceback (most recent call last)
<ipython-input-37-bd71c23fee89> in <module>()
      1 
----> 2 for tweet in api.GetStreamFilter(locations=(-122.75,36.8,-121.75,37.8)):
      3     print (tweet)
      4     break

~\AppData\Local\Continuum\anaconda3\lib\site-packages\twitter\api.py in GetStreamFilter(self, follow, track, locations, languages, delimited, stall_warnings, filter_level)
   4580             data['track'] = ','.join(track)
   4581         if locations is not None:
-> 4582             data['locations'] = ','.join(locations)
   4583         if delimited is not None:
   4584             data['delimited'] = str(delimited)

TypeError: sequence item 0: expected str instance, float found

1 Ответ

0 голосов
/ 18 февраля 2019

api.GetStreamFilter(locations=-122.75,36.8,-121.75,37.8)

В контексте вызова функции основным использованием запятой является разделение аргументов.

Таким образом, вы вызываете функцию с четырьмя аргументами: locations=-122.75, 36.8, -121.75 и 37.8.Это ошибка, потому что аргументы ключевого слова должны приходить после позиционных (то есть регулярных) аргументов.

Если вы намеревались передать кортеж, заключите его в скобки, чтобы рассматривать его как один аргумент:

api.GetStreamFilter(locations=(-122.75,36.8,-121.75,37.8))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...