最佳答案
对于 Python3,我从 URL 请求一个 json 文档。
response = urllib.request.urlopen(request)
response
对象是具有 read
和 readline
方法的类文件对象。通常可以创建一个 JSON 对象,并以文本模式打开一个文件。
obj = json.load(fp)
我想做的是:
obj = json.load(response)
然而,当 urlopen 以二进制模式返回文件对象时,这不起作用。
解决办法当然是:
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
但这感觉很糟糕。
有没有更好的方法可以将字节文件对象转换为字符串文件对象?或者我是否缺少 urlopen
或 json.load
的任何参数来给出编码?