web-dev-qa-db-fra.com

Requête HTTP PUT dans Python utilisant des données JSON

Je veux faire une demande PUT dans Python en utilisant les données JSON comme

data = [{"$TestKey": 4},{"$TestKey": 5}]

Est-ce qu'il y a un moyen de faire ça?

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)

Obtenir cette erreur

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

6
amar19

Votre data est déjà une chaîne au format JSON. Vous pouvez le transmettre directement à requests.put au lieu de le convertir avec json.dumps encore.

Changement:

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

à:

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

Alternativement, votre data peut stocker une structure de données à la place, de sorte que json.dumps peut le convertir en JSON.

Changement:

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

à:

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