web-dev-qa-db-ja.com

request()が予期しないキーワード引数 'json'を取得しました

私はPythonでリクエストをjsonでデータを送信する必要があります。

Pythonバージョン:2.7.6

OS: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'

この問題をどのように発行しますか?

4
mySun

あなたのデータはdictです、あなたはそれを次のようなjsonフォーマットに変換する必要があります:

json.dumps(data)

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)
9
DRPK

ここを見る http://docs.python-requests.org/en/master/user/advanced/ あなたの 'json'キーワードは実際には 'data'であるべきだと思う

つまり.

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

0
Kyloe Graves