【问题标题】:Trouble with JSON and the Twitter APIJSON 和 Twitter API 的问题
【发布时间】:2014-09-25 03:16:00
【问题描述】:

所以,我在尝试从我的提要中请求状态时遇到了这个问题,而且错误非常模糊,我无法弄清楚我做错了什么。任何帮助将不胜感激。

My Code:

with open("Output.txt") as input:
lines = [line for line in input if line.strip()]

with open("Output.txt", "w") as output:
    for items in api.request('statuses/home_timeline', {'count': '200'}):
        x = ((items['text'] if 'text' in items else items).encode('ascii', 'ignore'))
        current_id = id(x)
        print(current_id)
        print(x.decode('ascii', 'ignore'))
        output.write((x.decode('ascii', 'ignore')) + '\n')
    for items in api.request('statuses/home_timeline', {'count': '200'}, {'max_id': str(current_id)}):
        x = ((items['text'] if 'text' in items else items).encode('ascii', 'ignore'))
        current_id = id(x)
        print(current_id)
        print(x.decode('ascii', 'ignore'))
        output.write((x.decode('ascii', 'ignore')) + '\n')




The Error Code returned:

Traceback (most recent call last):
  File "C:/Users/Brandon/PycharmProjects/untitled/automated_timeline_collector.py", line 29, in <module>
    for items in api.request('statuses/home_timeline', {'count': '200'}, {'max_id': str(current_id)}):
  File "C:\Python27\lib\site-packages\TwitterAPI\TwitterAPI.py", line 140, in __iter__
    for item in self.get_iterator():
  File "C:\Python27\lib\site-packages\TwitterAPI\TwitterAPI.py", line 137, in get_iterator
    return RestIterator(self.response)
  File "C:\Python27\lib\site-packages\TwitterAPI\TwitterAPI.py", line 165, in __init__
    resp = response.json()
  File "C:\Python27\lib\site-packages\requests\models.py", line 756, in json
    return json.loads(self.content.decode(encoding), **kwargs)
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Process finished with exit code 1

程序通过前 200 个状态没有问题,但我使用当前 id 让代码从中断处继续的方式不太正确。感谢您的帮助和反馈。

【问题讨论】:

  • 那么,如果您返回的不是 JSON,那么 是 是什么?
  • 捕获异常,看看它是否有更多细节。碰到一些错误页面,捕获异常并继续可能是正常的。

标签: python json twitter


【解决方案1】:

改变这个:

for items in api.request('statuses/home_timeline', {'count': '200'}):

到这里:

for items in api.request('statuses/home_timeline', {'count': '200'}).get_iterator():

【讨论】:

    【解决方案2】:
    1. 无法解码任何 JSON 对象 您的数据中存在 JSON 无法解码或编码的非法字符;
    2. 一个小但非常重要的建议:不要使用一些合理的名称作为变量,当我发现您使用“输入”作为变量时,虽然不太确定,但我在下面键入:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2011-01-19
      • 2018-03-13
      • 1970-01-01
      相关资源
      最近更新 更多