Ошибки API Twitter: «json.decoder.JSONDecodeError» и «twitter.error.TwitterError»? - PullRequest
0 голосов
/ 15 мая 2018

Я хочу использовать API Twitter для исследования хэштегов и следую этому руководству .

Тем не менее, я получаю следующую ошибку:

  Traceback (most recent call last):
    File "C:\Users\saly\AppData\Local\Programs\Python\Python36-32\lib\site- 
    packages\twitter\api.py", line 4875, in _ParseAndCheckTwitter
    data = json.loads(json_data)
    File "C:\Users\saly\AppData\Local\Programs\Python\Python36- 
    32\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
    File "C:\Users\saly\AppData\Local\Programs\Python\Python36- 
    32\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "C:\Users\saly\AppData\Local\Programs\Python\Python36- 
    32\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "C:\Users\saly\Documents\Alpha - P\Python\Data Camp Files\datacamp.py", 
    line 17, in <module>
    for line in stream:
    File "C:\Users\saly\AppData\Local\Programs\Python\Python36-32\lib\site- 
    packages\twitter\api.py", line 4573, in GetStreamFilter
    data = self._ParseAndCheckTwitter(line.decode('utf-8'))
    File "C:\Users\saly\AppData\Local\Programs\Python\Python36-32\lib\site- 
    packages\twitter\api.py", line 4884, in _ParseAndCheckTwitter
    raise T
    twitter.error.TwitterError: {'message': 'Unauthorized'}
    [Finished in 1.0s withwitterError({'message': "Unauthorized"}) exit code 1]
    [shell_cmd: python -u "C:\Users\saly\Documents\Alpha - P\Python\Data Camp 
    Files\datacamp.py"]
    [dir: C:\Users\saly\Documents\Alpha - P\Python\Data Camp Files]
    [path: C:\Program Files (x86)\Common Files\Intel\Shared 
 Libraries\redist\intel64\compiler;C:\ProgramData\Oracle\Java\javapath;C:\Program 
 Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma 
  SDK\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\PuTTY\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Users\saly\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\saly\AppData\Local\Programs\Python\Python36-32\;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\PuTTY\;C:\Program Files (x86)\Skype\Phone\;C:\Users\saly\AppData\Local\Microsoft\WindowsApps;C:\Python34\Scripts;C:\Python34;C:\Users\saly\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin;C:\Users\saly\AppData\Local\atom\bin;C:\Users\saly\AppData\Roaming\npm]

Вот мой код (я убрал ключи):

import csv
import twitter
api = twitter.Api(
    consumer_key = '',
    consumer_secret ='',
    access_token_key = '',
    access_token_secret = '')

hashtags_to_track = [
    "#TheHighlanderWasAGreatMovie",
]

stream = api.GetStreamFilter(track=hashtags_to_track)

with open('tweets.csv', 'w+') as csv_file:
    csv_writer = csv.writer(csv_file)
    for line in stream:
        # Signal that the line represents a tweet
        if 'in_reply_to_status_id' in line:
            tweet = twitter.Status.NewFromJsonDict(line)
            print(tweet.id)
            row = [tweet.id, tweet.user.screen_name, tweet.text]
            csv_writer.writerow(row)

Наконец, я хочу экспортировать данные с помощью модуля csv. Если я делаю это неправильно или что-то явно не так, не могли бы вы отослать меня к правильному ресурсу? Любые советы по «отладке» также очень ценятся. Я использую Sublime после проблем с использованием пакета 'script' в Atom для запуска моего кода.

Если кто-нибудь из вас знает лучший ресурс / руководство по тому, что я пытаюсь сделать, пожалуйста, дайте мне знать! :)

Спасибо!

Редактировать: опечатки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...