将 curl 转换为 Python requests.put

mik*_*e79 2 python curl python-requests

我查了好几件事,我只是没有找到一个完全符合我正在做的事情。我找到了一些接近的,但我似乎无法得到它。

我有这个 curl 声明。成功时返回 204,并且工作正常。

# curl -v -H "Content-type: application/json" -X PUT -d '{"latitude":47.629355,"longitude":-122.3794778}' "http://myserver.com/location/private/location"
Run Code Online (Sandbox Code Playgroud)

当我尝试将其转换为 Python Requests 时,它似乎应该如下所示:

headers = {'Content-type': 'application/json'}
data = {"latitude":'47.629355',"longitude":'-122.3794778'}
r = requests.put("http://myserver.com/location/private/location", headers=headers, data=data)
Run Code Online (Sandbox Code Playgroud)

但是,这是失败并返回 400(错误的请求)。所以我的形成方式不太正确。

我一直在戳它,更改引号等。但是根据我在 SO 和http://docs.python-requests.org/上阅读的内容,在我看来我做对了.

任何分享的智慧将​​不胜感激。谢谢!

pig*_*lei 5

尝试替换datajson.dumps(data)

import json
r = requests.put("http://myserver.com/location/private/location", headers=headers, data=json.dumps(data))
Run Code Online (Sandbox Code Playgroud)