将请求放在curl中,但不在Python中

时间:2017-12-21 14:10:05

标签: python http curl python-requests

我正在尝试制作一个' put' curl的方法一切正常,我得到了JSON:

curl -X PUT -d '[{"foo":"more_foo"}]' http://ip:6001/whatever?api_key=whatever

但出于某种原因使用python requests模块如下:

import requests
url = 'http://ip:6001/whatever?api_key=whatever'

a = requests.put(url, data={"foo":"more_foo"})

print(a.text)
print(a.status_code)

我收到以下错误:

  

500内部服务器错误

内部服务器错误

服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。

NB:服务器已启动并正在运行。

1 个答案:

答案 0 :(得分:5)

应该转储数据:

a = requests.put(url, data=json.dumps([{"foo":"more_foo"}]))

或者您可以使用json密钥代替data

a = requests.post(url, json=[{"foo":"more_foo"}])