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