我在Python 3.5.1中收到此错误.
json.decoder.JSONDecodeError:期望值:第1行第1列(char 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))
如果你查看你收到的输出print()
以及你的Traceback,你会看到你得到的值不是字符串,它是一个字节对象(前缀为b
):
b'{\n "note":"This file .....
如果您使用诸如此类的工具获取URL curl -v
,您将看到内容类型为
Content-Type: application/json; charset=utf-8
所以它是JSON,编码为UTF-8,Python正在考虑它是一个字节流,而不是一个简单的字符串.要解析此问题,您需要先将其转换为字符串.
将最后一行代码更改为:
info = json.loads(js.decode("utf-8"))