以下是this回答的小引用:
import requests
import json
data = {"data" : "24.3"}
data_json = json.dumps(data)
headers = {'Content-type': 'application/json'}
response = requests.post(url, data=data_json, headers=headers)
有没有人确切知道你是否重要
data = {"data" : "24.3"}
或
data = {"data" : 24.3}
?
答案 0 :(得分:4)
您已经为requests.post()
提供了一个字符串,因为您将字典转换为json.dumps()
的JSON文档。 requests
此字符串包含的内容无关紧要。
只对您发送此数据的服务器有用;它是将解码JSON文档并使用您的数字或字符串的服务器。
请注意,requests
可以为您执行JSON转换。这里没有必要使用json.dumps()
,只需将字典传递给json
关键字argumnet:
import requests
data = {"data" : "24.3"}
response = requests.post(url, json=data)
这也需要将Content-Type
标题设置为application/json
。
答案 1 :(得分:1)
您的帖子中有两个不相关的问题。
第一个是:
有没有人确切知道你是否重要
data = {"data" : "24.3"}
或
data = {"data" : 24.3}
?
是的,这很重要!
它们完全不同。
对它们进行相同处理会使JSON格式的使用过时。
如果服务器需要密钥"数据"要成为JSON data type数字并将其作为JSON数据类型字符串发送,应该响应HTTP状态代码400。
如果服务器未报告任何错误,则表示此特定密钥未在服务器中使用和/或未在服务器中验证。
如果服务器确实对待它们,那么它就是愚蠢的而不是多余的。这就是为什么首先使用JSON格式的原因。
第二个是:
Python请求POST是否需要将数字数据作为字符串 比漂浮?
此问题标题在Martijn Pieters的答案中有解释。