Python:Json转储转义引号
当我传递以下数据时,有一个POST请求非常有效:Python:Json转储转义引号,python,json,Python,Json,当我传递以下数据时,有一个POST请求非常有效: url = 'https://www.nnnow.com/api/product/details' requests.post(url, data="{\"styleId\":\"BMHSUR2HTS\"}", headers=headers) 但是,当我在字典上使用json.dumps()并发送响应时,我不会使用headers={'Content-Type':'application/json'}得到响应(响应代码504)。还尝试了Post
url = 'https://www.nnnow.com/api/product/details'
requests.post(url, data="{\"styleId\":\"BMHSUR2HTS\"}", headers=headers)
但是,当我在字典上使用json.dumps()
并发送响应时,我不会使用headers={'Content-Type':'application/json'}
得到响应(响应代码504)。还尝试了Post请求的json参数
requests.post(url, data=json.dumps({"styleId":"BMHSUR2HTS"}), headers={'content-type': 'application/json'})
现在,json.dumps({“styleId”:“BMHSUR2HTS”})返回的数据
和
“{\“styleId\”:\“BMHSUR2HTS\”}”
是不同的
json.dumps({“styleId”:“BMHSUR2HTS”})=“{\“styleId\:\“BMHSUR2HTS\”}”
给出False
,即使两者上的打印显示类似的字符串
如何从字典
{“styleId:“BMHSUR2HTS”}
中获得与{“styleId:“BMHSUR2HTS”}
相同的格式?如果打印json.dumps({“styleId:“BMHSUR2HTS”})
,您会注意到两件事:
类型(json.dumps({“styleId”:“BMHSUR2HTS”}))
李>
{“styleId”:“BMHSURT2HTS”}
json.dumps({“styleId”:“BMHSUR2HTS”})。替换(“:”,“:”)
eval(json.dumps({“styleId”:“BMHSUR2HTS”}))
和eval(您的json字符串)
我希望这能对您有所帮助。字符串与
json.dumps的结果之间的唯一区别是后者会在冒号后面加一个空格;这在JSON中并不重要,也不是问题的原因。当您只传递实际的dict
时会发生什么?例如,requests.post(url,data={“styleId”:“BMHSUR2HTS”},headers=headers)
。这就是示例中使用的表单。您可以使用json.dumps({“styleId”:“BMHSUR2HTS”},分隔符=(',',':'))
获得相同的结果,但我不明白为什么它不能工作,因为that@DanielRoseman:我添加了url,这样您也可以看到它不适用于json。dumps
当您使用分隔符时,它可以工作=(“,”,“:”)
,他们可能正在使用一个奇怪的解析器。。。