簡體   English   中英

Python不解碼JSON

[英]Python not decoding json

我收到錯誤:

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行。

您正在訪問的Microsoft服務一開始就包含UTF-8 BOM。 但是Microsoft相當喜歡UTF-8中的BOM(此處完全多余),因為它向UTF-8引入了BOM,以使記事本和其他Windows應用程序更容易自動檢測所使用的編碼。

愚蠢的微軟,根據JSON RFC,這是非常無效的 如果任何地方都有聯系地址,則應將此錯誤報告給他們。

您可以使用以下方法剝離BOM表:

import codecs

data = response.read()
if data.startswith(codecs.BOM_UTF8):
    data = data[3:]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM