为什么 API 的 POST 调用由于数据类型不兼容而无法发布数据?



我目前正在做一个小项目,我一直在使用Python向我的API发布一个JSON对象。我该如何解决这个问题?我不太明白这个问题。错误提示类型number的期望值得到了一个字符串,但我不知道如何解决这个问题。

由于安全原因,我不提供API链接。

Get方法

import json
import requests

def get_response():
api_url = "url_link"
response = requests.get(api_url).json()
submission_url = response['submissionUrl']
sheets = json.dumps(response['sheets'])
return submission_url, sheets

Post方法

def post_response():
api_url, results = get_response()
email = "randomemail@gmail.com"
myobj = {"email": email, "results": json.loads(results)}
post_data = requests.post(api_url, json=myobj)
post_data.json()
return post_data.text

print(post_response())

错误码

{"reports":[{"id":"0","ok":true},{"id":"1","ok":true},{"id":"2","error":"invalid result: invalid cell B1: expected value of type number, got string"}

JSON数字字段是数字。最基本的特征是它们不应该被引用。

检查你的结果:request .get(api_url).json()

数值有引号吗?您可以使用像jsonschema这样的工具来帮助您验证它们。你也可以使用Python分解转储json中的每个值并替换它,参见这个答案:如何在Python中将json字符串转换为整数?

最新更新