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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...