Skip to main content
 首页 » 编程设计

python之JSON解码错误 : Expecting value: line 1 column 1 (char 0) error

2025年05月04日24sxdcgaq8080

我在请求从 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 库解决了我的问题,现在我可以过滤 api 请求。

data = requests.get('https://api.xxxxx.com.tr/v1/articles', headers = 
headers, params={"$filter":"Path eq '/xxxxxx/'"}).json() 

我将此答案留给将来可能需要此解决方案的任何其他人。 感谢您的所有建议。