关于python:request()获得了意外的关键字参数’json’

request() got an unexpected keyword argument 'json'

本问题已经有最佳答案,请猛点这里访问。

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

Python版本:2.7.6

操作系统:Ubuntu 16.04

例如:

1
2
3
4
5
6
7
8
9
10
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)

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

1
2
3
4
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'

如何发出这个问题?


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

json.dumps(数据)

1
2
3
4
5
6
7
8
9
10
11
12
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)


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

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