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

Python调用API时POST请求因数据类型不兼容失败如何修复?

问题分析与解决方案

错误提示明确指出:B1单元格预期是number类型,实际传入了string类型。问题出在你提交的results数据中,对应B1位置的值是字符串格式(比如"123"),而API要求的是数字格式(比如123)。

第一步:移除冗余的JSON序列化/反序列化操作

你的get_response函数里把response['sheets']转成JSON字符串,又在post_response里转回来,这完全没必要,还可能引入潜在类型问题。直接返回原始对象即可:

修改get_response函数:

import json
import requests

def get_response():
    api_url = "url_link"
    response = requests.get(api_url).json()
    submission_url = response['submissionUrl']
    # 直接返回原始sheets对象,无需转成JSON字符串
    sheets = response['sheets']

    return submission_url, sheets

对应简化post_response函数:

def post_response():
    api_url, results = get_response()
    email = "randomemail@gmail.com"
    # 直接使用results,无需json.loads
    myobj = {"email": email, "results": results}
    post_data = requests.post(api_url, json=myobj)
    post_data.json()
    return post_data.text

第二步:转换B1单元格的数据类型

接下来需要定位results里对应B1单元格的值,把它从字符串转成数字(int或float,根据API需求选择)。结合错误提示里的id="2",可以针对性处理:

在post_response中添加类型转换代码:

def post_response():
    api_url, results = get_response()
    email = "randomemail@gmail.com"

    # 遍历results,找到id为"2"的项,转换B1的值类型
    for item in results:
        if item.get("id") == "2":
            cell_data = item.get("cells", {})
            if "B1" in cell_data:
                try:
                    # 转成整数,若需要浮点数则替换为float()
                    cell_data["B1"] = int(cell_data["B1"])
                except ValueError:
                    print("B1的值无法转换为数字,请检查原始数据")

    myobj = {"email": email, "results": results}
    post_data = requests.post(api_url, json=myobj)
    post_data.json()
    return post_data.text

辅助排查建议

如果不确定results的具体结构,可以先在get_response里打印原始数据,明确B1值的位置:

def get_response():
    api_url = "url_link"
    response = requests.get(api_url).json()
    print("原始sheets数据结构:", response['sheets'])  # 打印查看具体结构
    submission_url = response['submissionUrl']
    sheets = response['sheets']
    return submission_url, sheets

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:24:55