[英]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.