import json
import requests
url = 'http://developer.usa.gov/1usagov.json'
r = requests.get(url, stream=True)
for line in r.iter_lines():
if line:
print (json.loads(line))
给出此错误:
TypeError: can't use a string pattern on a bytes-like object
通过浏览器查看时,我确实看到响应是一个Json,但请求库却说它是一个类似对象的字节,为什么呢?
如果您使用Python 3.x,则应将str
对象传递给json.loads
。
替换以下行:
print(json.loads(line))
与:
print(json.loads(line.decode()))
更新:行为在Python 3.6中已更改。现在,该参数可以是字节或字节数组类型。输入编码应为UTF-8,UTF-16或UTF-32。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句