request()得到了一个意外的关键字参数'json'

时间:2017-10-28 16:10:53

标签: python json python-requests

我需要在Python中使用带有请求的json发送数据。

Python版本:2.7.6

操作系统:Ubuntu 16.04

例如:

import json
import requests
f = requests.Session()
data = {
    "from_date": "{}".format(from_date),
    "to_date": "{}".format(to_date),
    "Action": "Search"
}

get_data = f.post(URL, json=data, timeout=30, verify=False)

但是在运行此代码后,显示此错误:

get_data = f.post(URL, json=data, timeout=30, verify=False)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 497, in post
return self.request('POST', url, data=data, **kwargs)
TypeError: request() got an unexpected keyword argument 'json'

如何发出此问题?

2 个答案:

答案 0 :(得分:6)

您的数据是dict,您应该将其转换为json格式,如下所示:

json.dumps(数据)

import json
import requests
f = requests.Session()

headers = {'content-type': 'application/json'}
my_data = {
"from_date": "{}".format(from_date),
"to_date": "{}".format(to_date),
"Action": "Search"
 }

get_data = f.post(URL, data=json.dumps(my_data), timeout=30, headers=headers, verify=False)

答案 1 :(得分:0)

看这里 http://docs.python-requests.org/en/master/user/advanced/ 我怀疑你的' json'关键字实际上应该是'数据'

即。

get_data = f.post(URL,data = data,timeout = 30,verify = False)