[英]json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1) error
[英]JSONDecodeError: Expecting value: line 1 column 1 (char 0) error
我在請求從api獲取json時遇到此錯誤。
我可以使用“ / v1 / articles”路徑獲取json數據。
conn = http.client.HTTPSConnection("api.xxxx.com.tr")
headers = {
'accept': "application/json",
'apikey': "cd6b6c96799847698d87dec9f9a731d6"
}
filter = "daily"
conn.request("GET", "/v1/articles", headers=headers)
reader = codecs.getreader("utf-8")
res = conn.getresponse()
data = json.load(reader(res))
json.dumps(data)
return data
但是,如果我設置了過濾器,我就會遇到JSONDecodeError。 碼:
conn = http.client.HTTPSConnection("api.xxxx.com.tr")
headers = {
'accept': "application/json",
'apikey': "cd6b6c96799847698d87dec9f9a731d6"
}
conn.request("GET", "/v1/articles?$filter=Path eq '/daily/'", headers=headers)
reader = codecs.getreader("utf-8")
res = conn.getresponse()
data = json.load(reader(res))
json.dumps(data)
return data
我使用Postman嘗試了相同的過濾器,沒有錯誤,我可以獲取Json數據。
從郵遞員返回的Json數據:
[
{
"Id": "40778196",
"ContentType": "Article",
"CreatedDate": "2018-03-20T08:28:05.385Z",
"Description": "İspanya'da 2016 yılında çalınan lüks otomobil, şasi numarası değiştirilerek Bulgaristan üzerinden getirildiği Türkiye'de bulundu.",
"Files": [
{
"FileUrl": "http://i.xxxx.com/i/xxxx/98/620x0/5ab0c6a9c9de3d18a866eb54.jpg",
"Metadata": {
"Title": "",
"Description": ""
}
}
],
"ModifiedDate": "2018-03-20T08:32:12.001Z",
"Path": "/gundem/",
"StartDate": "2018-03-20T08:32:12.001Z",
"Tags": [
"ispanya",
"Araç",
"Hırsız",
"Dolandırıcı"
],
"Title": "İspanya'da çalınan lüks araç Türkiye'de bulundu!",
"Url": "http://www.xxxx.com.tr/gundem/ispanyada-calinan-luks-arac-turkiyede-bulundu-40778196"
}
]
我不知道這個問題。 如果有人在這個問題上幫助我,那將是很棒的。 謝謝。
問題在下面的行中
data = json.load(reader(res))
當您的響應不是json字符串時, JSONDecodeError
發生JSONDecodeError
。 因此,添加其他邏輯以查看響應是None
還是json
字符串。 首先,打印reader(res)
並查看返回值
我終於解決了問題! 使用requests
庫已經解決了我的問題,現在我可以過濾api請求了。
data = requests.get('https://api.xxxxx.com.tr/v1/articles', headers =
headers, params={"$filter":"Path eq '/xxxxxx/'"}).json()
我將這個答案留給將來可能需要此解決方案的其他任何人。 感謝您的所有建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.