cómo POSTAR los contenidos del archivo JSON a la API RESTFUL con Python usando el módulo de solicitudes

Está bien, me rindo. Estoy tratando de publicar el contenido de un archivo que contiene JSON. El contenido del archivo se ve así:


{ "id”:99999999, "orders":[ { "ID”:8383838383, "amount":0, "slotID":36972026 }, { "ID”:2929292929, "amount":0, "slotID":36972026 }, { "ID”:4747474747, "amount":0, "slotID":36972026 }] } 

Aquí está el código que probablemente está fuera de lugar:

 #!/usr/bin/env python3 import requests import json files = {'file': open('example.json', 'rb')} headers = {'Authorization' : '(some auth code)', 'Accept' : 'application/json', 'Content-Type' : 'application/json'} r = requests.post('https://api.example.com/api/dir/v1/accounts/9999999/orders', files=files, headers=headers) 

Esto debería funcionar, pero es para archivos muy grandes.

 import requests url = 'https://api.example.com/api/dir/v1/accounts/9999999/orders' headers = {'Authorization' : '(some auth code)', 'Accept' : 'application/json', 'Content-Type' : 'application/json'} r = requests.post(url, data=open('example.json', 'rb'), headers=headers) 

Si desea enviar un archivo más pequeño, envíelo como una cadena.

 contents = open('example.json', 'rb').read() r = requests.post(url, data=contents, headers=headers) 

En primer lugar, su archivo json no contiene json válido. como en "id” -aquí la comilla de cierre es diferente a la comilla de apertura. Y otros campos de ID tienen el mismo error. Hágalo así "id" .

ahora puedes hacerlo asi

 import requests import json with open('example.json') as json_file: json_data = json.load(json_file) headers = {'Authorization' : '(some auth code)', 'Accept' : 'application/json', 'Content-Type' : 'application/json'} r = requests.post('https://api.example.com/api/dir/v1/accounts/9999999/orders', data=json.dumps(json_data), headers=headers) 
 import requests import json with open('example.json') as json_file: json_data = json.load(json_file) auth=('token', 'example') r = requests.post('https://api.example.com/api/dir/v1/accounts/9999999/orders', json=json_data, auth=auth)