JSONDecodeError:期望值:第1行第1列

时间:2016-01-03 17:19:08

标签: json python-3.x

我在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))

image

2 个答案:

答案 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)

在我的情况下,有些人物喜欢" ,:"' {} []"可能会损坏JSON格式,所以使用尝试json.loads(str)除了来检查你的输入