Python请求库:data和json命名参数与requests.post

时间:2017-11-08 19:36:57

标签: python python-requests

根据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?这种冗余是特殊的还是有意的?

1 个答案:

答案 0 :(得分:6)

dict传递给data会导致dict 表单编码,就像您在HTML网页上提交表单一样;例如,data={"example": "request"}将作为example=request在请求正文中发送。另一方面,json关键字将其参数编码为JSON值(并将Content-Type标头设置为application/json)。