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

如何通过带请求头的请求获取JSON文本,解决JSONDecodeError报错

问题原因分析
  • 未保持登录会话:requests单独发送POST登录请求和GET请求时,默认是两个独立会话,登录后返回的身份凭证(Cookie/Token)不会自动携带到后续GET请求中,导致访问/part_one接口时返回非JSON的未授权页面/错误页面,无法解析为JSON。
  • GET请求URL存在多余空格:代码中GET请求的URL末尾多了一个空格,会导致请求地址错误,返回404页面而非预期的JSON数据。
  • JSON解析逻辑错误:response.json()方法已经自动将响应的JSON字符串转换为Python字典/列表对象,再次使用json.loads()嵌套解析相当于对Python对象做JSON字符串解析,直接触发报错。
修复后代码
import requests

headers = {
    'username': 'Loskarlos',
    'password':  'JednohoDneOvladnuKSI'
}

# 初始化会话,自动保持登录后的身份凭证
session = requests.Session()

# 发起登录请求
login_resp = session.post('https://losoviny.iamroot.eu/part_one_login', headers=headers)
# 校验登录状态
if login_resp.status_code != 200:
    print(f"登录失败,状态码:{login_resp.status_code}")
else:
    # 去掉URL末尾多余空格,用同一会话发起数据请求
    get_resp = session.get('https://losoviny.iamroot.eu/part_one')
    if get_resp.status_code == 200:
        # 直接调用json()方法解析即可,无需额外嵌套json.loads
        result = get_resp.json()
        print(result)
    else:
        print(f"数据请求失败,状态码:{get_resp.status_code},响应内容:{get_resp.text}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:01