Python中使用JSON数据的HTTP PUT请求

时间:2018-09-26 05:35:01

标签: python json http put

我想使用JSON数据作为

在Python中发出PUT请求
data = [{"$TestKey": 4},{"$TestKey": 5}]

有什么办法吗?

import requests
import json

url = 'http://localhost:6061/data/'

data = '[{"$key": 8},{"$key": 7}]'

headers = {"Content-Type": "application/json"}

response = requests.put(url, data=json.dumps(data), headers=headers)

res = response.json()

print(res)

遇到此错误

requests.exceptions.InvalidHeader: Value for header {data: [{'$key': 4}, {'$key': 5}]} must be of type str or bytes, not <class 'list'>

2 个答案:

答案 0 :(得分:1)

您的data已经是JSON格式的字符串。您可以将其直接传递给requests.put,而不必再次使用json.dumps进行转换。

更改:

response = requests.put(url, data=json.dumps(data), headers=headers)

收件人:

response = requests.put(url, data=data, headers=headers)

或者,您的data可以存储数据结构,以便json.dumps可以将其转换为JSON。

更改:

data = '[{"$key": 8},{"$key": 7}]'

收件人:

data = [{"$key": 8},{"$key": 7}]

答案 1 :(得分:0)

requests 库中的 HTTP 方法有一个 json 参数,它将为您执行 json.dumps() 并将 Content-Type 标头设置为 application/json

data = [{"$key": 8},{"$key": 7}]
response = requests.put(url, json=data)