TypeError:request()得到意外的关键字参数“json”PYTHON,AW

2024-06-16 12:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

这里有人可以帮我做这个python脚本吗。在

当我执行此脚本时,我收到以下错误:

TypeError:request()得到意外的关键字参数“json”

import boto3
import requests
from requests_aws4auth import AWS4Auth

host = 'XXXXX' # include https:// and trailing /
region = 'ap-northeast-1'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# Register repository

headers = {"Content-Type": "application/json"}
path = '_snapshot/XXXXX' # the Elasticsearch API endpoint
url = host + path

payload = {
  "type": "s3",
  "settings": {
    "bucket": "XXXXX",
    "region": "ap-northeast-1",
    "role_arn": "XXXXX"
  }
}



r = requests.put(url, auth=awsauth, json=payload, headers=headers)

print(r.status_code)
print(r.text)

Tags: import脚本jsonhostserviceboto3requestsregion
2条回答

尝试一下r = requests.put(url, auth=awsauth, headers=headers)。看起来不需要参数json=payload,因为头文件包含该json格式。这里的更多信息(https://github.com/requests/requests/issues/2664)也可能有帮助。在

问题是AmazonLinux/2.8.1(可能还有其他版本)默认安装了requests==1.2.3。{14.05中的json-2请求(仅根据^-4模块中的请求)

您可以检查已安装的版本并升级到最新版本,如下所示:

$ pip show requests | grep Version
Version: 1.2.3

$ sudo /usr/local/bin/pip install  upgrade requests

$ pip show requests | grep Version
Version: 2.8.1

相关问题 更多 >