【发布时间】:2015-07-21 14:45:17
【问题描述】:
我查了几件事情,只是没有找到一件完全符合我正在做的事情。我找到了一些接近的,但我似乎无法得到它。
我有这个 curl 声明。成功时返回 204,并且工作正常。
# curl -v -H "Content-type: application/json" -X PUT -d '{"latitude":47.629355,"longitude":-122.3794778}' "http://myserver.com/location/private/location"
当我尝试将其转换为 Python 请求时,它似乎应该如下:
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)
但是,这失败并返回 400(错误请求)。所以我的形成方式不太对劲。
我一直在研究它,更改引号等。但根据我在 SO 和 http://docs.python-requests.org/ 上所读到的内容,在我看来我做得对。
任何智慧分享将不胜感激。谢谢!
【问题讨论】:
-
您在 curl 调用中将 lat/long 作为浮点数提供,但在 python 代码中作为字符串提供。尝试:
data = {"latitude":47.629355,"longitude": -122.3794778}。否则代码看起来很好。 -
这也是我最初拥有的数据,但它不起作用。我再次尝试以确保我没有错过它,但仍然无法正常工作。仍然得到 400。
-
打印 r.text 向我显示“无效请求:无法读取数字:latitude=47.629355&longitude=-122.3794778”
标签: python curl python-requests