You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求排查Python的json.decoder.JSONDecodeError错误及数据提取问题

问题排查与修复方案

错误原因分析

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 这个错误说明请求返回的内容不是有效的JSON格式,大概率是请求未成功获取到目标JSON文件,返回了空内容或者错误页面(比如403/404状态对应的HTML页面)。

修复步骤与优化代码

1. 先校验请求状态

处理响应前,先确认请求是否成功(HTTP状态码200代表成功),失败则直接抛出异常提示问题:

2. 使用requests内置JSON解析方法

requests库提供了response.json()方法,可直接将响应内容解析为JSON对象,比手动调用json.loads(response.text)更稳定,还能自动处理编码、内容格式等问题。

优化后的代码

import requests

url = "https://s3-ap-southeast-1.amazonaws.com/psi-file-depot/prod/annual-open-data-plans-bd-list.json"

response = requests.get(url)
# 检查请求是否成功,失败则抛出异常
response.raise_for_status()

# 直接用内置方法解析JSON
aObject = response.json()

for idx, item in enumerate(aObject['data']):
    print("{}{}\t{}".format(
        str(idx).rjust(2, ' '),
        item['provider_name_en'].rjust(25, ' '),
        item['provider_url_en']
    ))

额外注意事项

  • 若优化后仍报错,可能是目标URL已失效,或是你的网络环境无法访问该S3存储地址(比如需要代理)。
  • 原代码中导入的pyquery、lxml、pandas、re、hyperlink库未实际使用,可直接删除以减少冗余。

内容的提问来源于stack exchange,提问作者Ponypoly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:37:17