【发布时间】:2018-08-28 23:47:01
【问题描述】:
我在请求从 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 数据。
从 Postman 返回的 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"
}
]
我无法弄清楚问题所在。如果有人帮助我解决这个问题,那就太好了。谢谢。
【问题讨论】:
-
这很难解决,因为我无法访问您的资源,我只能建议使用更强大的客户端,例如 requests 可能会解决问题@987654321 @
-
conn.request("GET", "/v1/articles?$filter=Path eq '/daily/'", headers=headers)你确定网址应该有$吗? -
@DeepSpace 是的 url 应该有它。
-
我真的非常怀疑这一点。它也不应该有空格或引号。您要连接的 API 是什么?
-
这段代码还有其他奇怪的地方。例如,
json.dumps(data)本身实际上什么都不做。
标签: python json django api decode