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

使用Python Requests提交字典列表至API未写入数据库问题

排查数据未写入数据库的可能原因
  • 确认请求的基础状态
    先打印请求状态码和响应内容:

    print(x.status_code)
    print(x.text)  # 或 print(x.json()) 如果响应是JSON格式
    

    非200/201这类成功状态码(比如400参数错误、401未授权、500服务器内部错误)直接说明请求未被服务器正确处理,响应内容里通常会包含具体错误信息。

  • 核对API接口要求

    • 确认接口是否支持POST方法,部分接口可能要求PUT或其他请求方式;
    • 检查是否需要额外请求头,比如认证令牌Authorization,虽然requests.post(json=...)会自动设置Content-Type: application/json,但有些服务器可能需要其他自定义头;
    • 对照API文档验证数据结构:字段名是否完全匹配(比如kl是否是服务器要求的字段名)、嵌套层级是否正确、日期格式是否符合服务器预期(比如服务器可能需要YYYY-MM-DD而非DD-MM-YYYY)。
  • 验证数据合法性
    检查数据是否违反数据库约束:比如name字段是否为空(当前示例有值,但需确认批量数据中是否存在空值)、日期格式能否被数据库解析、是否存在重复的唯一键(若kl是数据库唯一字段)。

  • 排查认证权限问题
    若API需要认证,未携带凭证会导致服务器拒绝写入。尝试添加认证信息,比如:

    headers = {'Authorization': 'Bearer YOUR_AUTH_TOKEN'}
    x = requests.post(url, json=my_data, headers=headers)
    
  • 查看服务器端日志
    若能访问服务器日志,直接查看日志中的错误详情,比如SQL执行报错、参数校验失败等,这是最直接的排查途径。

  • 测试简化数据
    先提交单个简化条目验证:

    test_data = [{'kl': 'test', 'schemas': [{'date': '2022-12-14', 'name': 'test_entry'}]}]
    x = requests.post(url, json=test_data)
    

    确认单条数据能否写入,逐步排查是批量提交还是数据结构的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:50:43