繁体   English   中英

为什么 python requests.post 接受 json 作为数据而不是字典

[英]why does python requests.post accept json for data but not a dictionary

文档似乎表明我可以将 'data=' 作为字典传递,但除非我使用json.dumps()否则我会收到错误消息

options = {
    "deviceId":["4d51de64-2235-a465-3aee-5ec495b5b250"],
    "serviceName":"software_manager",
    "serviceVersion":"1.0",
    "actionName":"Dump Log Files" }

res = requests.post( req, data=json.dumps(options), auth=cred) 

如果我尝试将选项作为字典传递,它会失败。

res = requests.post( req, data=options, auth=cred) 

data=json.dumps(options) # This works
data=options             # this fails

为什么? 我在文档中遗漏了什么吗?

requests.post()data参数要么接受表单编码的数据(如果您将其传递给dict ),要么接受原始字符串(这就是json.dumps(options)起作用的原因)。

为了传入一个非编码的字典,你应该使用.post()json参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM