我在Python 3.5.1中收到此错误。
json.decoder.JSONDecodeError:期望值:第1行第1列(字符0)
这是我的代码:
import json
import urllib.request
connection = urllib.request.urlopen('http://python-data.dr-chuck.net/comments_220996.json')
js = connection.read()
print(js)
info = json.loads(str(js))
答案 0 :(得分:21)
如果你查看从print()
和你的Traceback收到的输出,你会看到你得到的值不是字符串,它是一个字节对象(前缀为b
) :
b'{\n "note":"This file .....
如果您使用curl -v
等工具获取网址,则会看到内容类型为
Content-Type: application/json; charset=utf-8
所以它是JSON,编码为UTF-8,Python正在考虑它是一个字节流,而不是一个简单的字符串。为了解析这个,你需要先将它转换成一个字符串。
将最后一行代码更改为:
info = json.loads(js.decode("utf-8"))
答案 1 :(得分:1)