【问题标题】:request() got an unexpected keyword argument 'json' [duplicate]请求()有一个意外的关键字参数“json”[重复]
【发布时间】:2023-03-29 19:45:02
【问题描述】:

我需要在 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 中。

标签: python json python-requests


【解决方案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)

【讨论】:

猜你喜欢
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 2016-09-12
  • 2018-04-26
  • 1970-01-01
相关资源
最近更新 更多