2017-10-28 11 views
3

jsonでデータをPythonでリクエストする必要があります。request()は予期しないキーワード引数 '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' 

問題?

+0

アップグレード '要求'、あなたのバージョンは古すぎます。 –

+0

@GhostlyMartijnこんにちは、 '要求'をアップグレードするには? – mySun

+0

どうやってインストールしましたか?システムパッケージとして?どのバージョンのUbuntu?新しいバージョンをvirtualenvにインストールすることができます。 –

答えて

2

あなたのデータは辞書で、あなたはこのようにJSON形式に変換する必要があります。ここに http://docs.python-requests.org/en/master/user/advanced/ を探し

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) 
+0

こんにちは、json.dumps(my_data)は動作しません。データ取得後に 'response [415]'が表示されます。 – mySun

+0

@mySun:415は、メディアタイプがサポートされていないことを意味します。あなたのリクエストにContent-Typeヘッダーが見つからないか、間違っている可能性が最も高いケースです(自分のコードではありません!!またはバグ!!!そのウェブサイトまたはURLでjsonフォーマットを取得できません)。正しい!私は予期しないキーワードの引数 'json' plz tick meについてあなたの質問に答えました:) – DRPK

+0

私は自分のラップトップで自分のコードを実行し、簡単に動作します。 :-( – mySun

0

私はあなたの 'JSON' キーワードと思われます実際にあるべき 'データ'

すなわち

get_data = f.post(URL、データ=データ、タイムアウト= 30、確認= False)

+0

こんにちは、json.dumps(my_data)は動作しません。 get data show response [415] – mySun

+0

いいえ、 'json'は、2.4.2現在の過去3年間にリリースされたリクエストのバージョンに対して正しいものです。 –

+0

http://docs.python-requests.org/ja/master/user/quickstart/#more-complicated-post-requestsをご覧ください。 –

関連する問題