【发布时间】:2018-04-22 05:54:07
【问题描述】:
我正在使用 Python 请求库来传输 url 并不断收到此错误:
import json
import requests
s = requests.Session()
payload = {'limit': 0}
r = s.get('https://api.coinmarketcap.com/v1/ticker', params=payload, timeout=(connect_timeout, read_timeout), stream=True)
r.raise_for_status()
for raw_rsvp in r.iter_lines(decode_unicode=True):
if raw_rsvp:
rsvp = json.loads(raw_rsvp)
print(rsvp)
我知道它试图在数组中的对象完成之前读取json,我该如何解决这个问题?
Expecting value: line 1 column 2 (char 1) Traceback (most recent call last):
File "benchmarks_generator.py", line 26, in refresh_coinmarketcap
rsvp = json.loads(raw_rsvp)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/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 2 (char 1)
【问题讨论】:
-
为什么我被否决了,如果你不相信我,这个问题在 [python-requests] 标签搜索下没有得到回答
-
raw_rsvp 包含什么?
-
@MrLeeh 里面有一个 '[' 字符,原来 json 对象不在一行,而是从服务器预先格式化的
标签: python json python-3.x python-requests