如何解决json.decoder.JSONDecodeError:期望值
如果在下面的代码中设置track = ['cat'],则会出现(1)中的错误,如果track = [b'cat'],则会出现(2)中的错误。 我该如何解决问题?
def GetStreamFilter(api,follow=None,track=None,locations=None,delimited=None,stall_warnings=None):
if all((follow is None,track is None,locations is None)):
raise ValueError({'message': "No filter parameters specified."})
url = '%s/statuses/filter.json' % api.stream_url
data = {}
if follow is not None:
data['follow'] = ','.join(follow)
if track is not None:
data['track'] = ','.join(track)
if locations is not None:
data['locations'] = ','.join(locations)
if delimited is not None:
data['delimited'] = str(delimited)
if stall_warnings is not None:
data['stall_warnings'] = str(stall_warnings)
json = api._RequestStream(url,'POST',data=data)
for line in json.iter_lines():
if line:
data = api._ParseAndCheckTwitter(line)
yield data
for item in GetStreamFilter(api,track=['cat']):
if 'text' in item:
print(item['id_str'])
print(dateutil.parser.parse(item['created_at']))
print(item['text'])
print(item['place'])
使用 str 输入曲目时出错。
(1)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/python_twitter-3.5-py3.8.egg/twitter/api.py",line 5032,in _ParseAndCheckTwitter
File "/usr/lib/python3.8/json/__init__.py",line 357,in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.8/json/decoder.py",line 337,in decode
obj,end = self.raw_decode(s,idx=_w(s,0).end())
File "/usr/lib/python3.8/json/decoder.py",line 355,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 "twitter_searching_influencer.py",line 130,in <module>
for item in GetStreamFilter(api,track=['cat']):
File "twitter_searching_influencer.py",line 126,in GetStreamFilter
data = api._ParseAndCheckTwitter(line)
File "/usr/local/lib/python3.8/dist-packages/python_twitter-3.5-py3.8.egg/twitter/api.py",line 5034,in _ParseAndCheckTwitter
TypeError: a bytes-like object is required,not 'str'
以字节为单位输入曲目时出错
(2)
File "twitter_searching_influencer.py",line 115,in GetStreamFilter
data['track'] = ','.join(track)
TypeError: sequence item 0: expected str instance,bytes found
我之前也遇到过类似的问题,当时我一个人想了想,可能没有解决,所以这次我决定从一开始就问熟悉这种情况的人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。