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

Python用requests发送SQL生成的JSON至REST API遇格式错误求助

问题:发送SQL生成的JSON到REST API时出现格式错误

我尝试通过requests库向REST API发送数据,由于JSON结构较为复杂,选择在MS-SQL函数中提前构建完整JSON。随后用pyODBC连接SQL数据库获取该JSON,但在构建请求时遇到数据类型处理问题,始终无法成功发送。

当前尝试步骤

1. 提取并解析JSON

pyODBC返回的结果是list类型,先提取出单个JSON字符串:

result = cursors.fetchall()
data = result[0][0]

此时得到格式正确的JSON字符串,接着用json.loads()转换为Python JSON对象,这一步未出现错误:

try:
    json_object = json.loads(data)
except json.JSONDecodeError as e:
    print('Error:', e)

2. 尝试发送请求的多种方式

我尝试了三种发送方式,但每次都收到*“Malformed body”*错误(Web服务不接受当前JSON格式):

# 方式1:使用json参数发送Python对象
requests.post(url, headers=headers, auth=auth, json=json_object)

# 方式2:使用data参数发送Python对象
requests.post(url, headers=headers, auth=auth, data=json_object)

# 方式3:使用data参数发送原JSON字符串
requests.post(url, headers=headers, auth=auth, data=data)

疑问

我疑惑为什么在Python中发送一个看似完整的JSON字符串会如此复杂,是在SQL Server中提前构建JSON的思路有误,还是我对数据类型转换的理解存在问题?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:26:08