Python请求POST是否需要数字数据为字符串而不是浮点数?

时间:2017-11-24 18:30:17

标签: python python-requests

以下是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}

2 个答案:

答案 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的答案中有解释。