【发布时间】:2014-01-19 03:51:39
【问题描述】:
我收到错误消息:
No JSON object could be decoded: line 1 column 0 (char 0)
尝试解析从 xbox 音乐 api 返回的 json 对象时。
这是我的代码:
conn = httplib.HTTPSConnection(SERVICE_API)
conn.request("GET", url)
response = conn.getresponse()
data = response.read()
j = json.loads(data)
最后一行是返回上述错误的内容。如果我将其注释掉并打印出“数据”,我可以看到 json 对象。如果我将其复制/过去到 jsonlint.com 以查看它是否有效,它会说它是有效的。我会在这里发布,但它是 800 行。
【问题讨论】:
-
我们需要看到的不仅仅是这段代码。
data这里到底包含什么?你打电话的网址是什么?你能给我们print url和print repr(data[:100])吗? -
另外,您用
jsonp标记了它,这是一个非常具体的协议,Pythonjson模块不支持(它不需要)。你为什么这样做? -
在读取响应和解码数据之间没有代码 - 所以如果你真的尝试打印它(而不是 json 加载它)并在它上面运行 jsonlint,那么神奇的小精灵一定在工作。告诉我们整个故事
-
当我注释掉最后一行,以'j'开头并在其上方放置一个'打印数据'时,我屏幕上显示的代码是这样的:pastebin.com/WAwW6T6H ...我放入的 json 验证器中的代码返回干净。
-
这里是 print repr(data[:100]) '\xef\xbb\xbf{"Albums":{"Items":[{"ReleaseDate":"2013-09- 17T00:00:00Z","持续时间":"00:45:22","TrackCount":16,"'