HTTP PUT-запрос в Python с использованием данных JSON - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу сделать запрос PUT в Python, используя данные JSON как

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'>

1 Ответ

0 голосов
/ 26 сентября 2018

Ваш 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}]
...