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

Python读取远程JSON遇403及TypeError问题求助

问题解决步骤

1. 解决403 Forbidden错误

服务器返回403是因为默认urllib请求的User-Agent标识太特殊,被服务器反爬机制拦截。解决方法是在请求头里添加模拟浏览器的User-Agent,比如Chrome的标识:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}

将这个请求头传入urllib.request.Request对象发起请求即可。

2. 解决TypeError字节索引错误

urllib.urlopen()返回的响应是字节流,直接尝试用字符串键索引会触发类型错误。必须先把字节流解码成UTF-8编码的字符串,再用json.loads()解析为Python字典:

import json
from urllib import request

# 构造带请求头的请求
req = request.Request('https://你的LEMP服务器地址/目标文件.json', headers=headers)
response = request.urlopen(req)

# 解码字节流并解析JSON
json_str = response.read().decode('utf-8')
data = json.loads(json_str)

# 正常访问数据示例
team_name = data['队名']
stat_value = data['统计值']
print(team_name, stat_value)

额外检查点

  • 确认LEMP服务器上的JSON文件权限正确(比如设置chmod 644),保证Nginx能正常返回该文件
  • 验证服务器上的JSON文件无语法错误(可使用jsonlint工具检查)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:25:25