根据requests library documentation的相关部分,将字典传递给post方法的主要方法如下:
r = requests.post(url, data = {"example": "request"})
之后,作者演示了一个将JSON字符串直接传递给Github API的示例。然后作者建议,不要将字典编码为JSON字符串并通过data
传递,您可以简单地使用命名参数json
来传递字典,如下所示。
r= requests.post(url, json = {"example": "request"})
您何时会使用json
代替data
?这种冗余是特殊的还是有意的?
答案 0 :(得分:6)
将dict
传递给data
会导致dict
表单编码,就像您在HTML网页上提交表单一样;例如,data={"example": "request"}
将作为example=request
在请求正文中发送。另一方面,json
关键字将其参数编码为JSON值(并将Content-Type
标头设置为application/json
)。