本篇文章扣丁学堂Python培训小编为大家分享一篇Python requests post多层字典的方法,文中有详细的代码列出供小伙伴们参考,对Python开发感兴趣的小伙伴一起跟随小编过来看看吧。
pyhton requests模块post方法传参为多层字典时,转换错误。
如,表单传参
{
“a”:1,
“b”:{
“A”:2,
“B”:3
}
}
post请求后看到form data是:
a:1
b:A
b:B
查看官方文档:
More complicated POST requests
Typically, you want to send some form-encoded data — much like an HTML form. To do this, simply pass a dictionary to the data argument. Your dictionary of data will automatically be form-encoded when the request is made:
payload = {‘key1': ‘value1', ‘key2': ‘value2'}
r = requests.post(“http://httpbin.org/post“, data=payload)
print(r.text)
{
…
“form”: {
“key2”: “value2”,
“key1”: “value1”
},
…
}
这里说post传入的dict类型参数会被自动转化为form-encoded,查看请求后,这里的demo是一个一层的字典。多层字典传输的时候,确实会异常。
解决办法:
将第二层字典转化为json,json.dumps({“A”:2,”B”:3}),然后赋给b。
想要了解更多关于Python和人工智能方面内容的小伙伴,请关注扣丁学堂Python培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Python开发环境搭建视频,Python培训后的前景无限,行业薪资和未来的发展会越来越好的,扣丁学堂老师精心推出的Python视频教程定能让你快速掌握Python从入门到精通开发实战技能。扣丁学堂Python技术交流群:279521237。
有疑问加站长微信联系(非本文作者)