请求()有一个意外的关键字参数“json”[重复]

Posted

技术标签:

【中文标题】请求()有一个意外的关键字参数“json”[重复]【英文标题】:request() got an unexpected keyword argument 'json' [duplicate] 【发布时间】:2018-04-10 01:08:21 【问题描述】:

我需要在 Python 中使用 requests 模块以 json 的形式发送数据。

例如:

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'

我在 Ubuntu 16.04 上,我的 Python 版本是 2.7.6

如何发出这个问题?

【问题讨论】:

升级requests,你的版本太旧了。 @GhostlyMartijn 你好,如何升级requests 你是怎么安装的?作为系统包?什么版本的 Ubuntu?您可以将新版本安装到 virtualenv 中。 【参考方案1】:

您的数据是一个字典,您应该将其转换为 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)

【讨论】:

嗨,不要工作 json.dumps(my_data)。获取数据后显示response [415]. @mySun : 415 表示媒体类型不受支持。最可能的情况是您的请求中缺少 Content-Type 标头,或者它不正确。(不适用于我的代码!!或任何错误!!!该网站或 url 没有获得您的 json 格式)我的代码是正确的!我回答了你关于意外关键字参数“json”的问题,请勾选我:) 我在我的笔记本电脑上运行我的代码并且很容易工作,但是上传到服务器后显示这个错误! :-( @mySun:再试一次!我添加了标题...标签 非常感谢您对我的帮助 :-)【参考方案2】:

看here 我怀疑你的json 关键字实际上应该是data,即,

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

【讨论】:

嗨,不要工作 json.dumps(my_data)。获取数据后显示响应 [415] 不,json 适用于过去 3 年(截至 2.4.2)发布的任何版本的请求。 见docs.python-requests.org/en/master/user/quickstart/…

以上是关于请求()有一个意外的关键字参数“json”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

XGBoost 继承:__init__() 有一个意外的关键字参数“标签”

Graphql 试图创建 get_user_model 的对象:__init__() 得到了一个意外的关键字参数“请求”

JSON 中位于位置 0(...) 的意外标记 r

json输入意外结束反应[重复]

/reg/ save() 处的 TypeError 有一个意外的关键字参数“force_insert”

sklearn NBClassifier 有一个意外的关键字参数“var_smoothing”