Okay, I give up. I am trying to post the contents of a file that contains JSON. The contents of the file look like this:
{
\"id”:99999999,
First of all your json file does not contain valid json. as in,"id”-here the closing quotation mark is different than the opening quotation mark. And other ID fields have the same error. Make it like this "id".
now you can do it like this,
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)
I have done below code while learning Open API and works fine for me.
`
import requests
url="your url"
json_data = {"id":"k123","name":"abc"}
resp = requests.post(url=url,json=json_data)
print(resp.status_code)
print(resp.text)
`
This should work, but it's meant for very large files.
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)
If you want to send a smaller file, send it as a string.
contents = open('example.json', 'rb').read()
r = requests.post(url, data=contents, headers=headers)
You need to parse the JSON, and pass that the body like so:
import requests
import json
json_data = None
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)