Преобразование Curl Array JSON Post в Python - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь конвертировать

curl -d '[[51.3, 13.4], [51.4, 13.3]]' -XPOST  -H 'Content-Type: application/json'  https://elevation.racemap.com/api

Завить команду в Python. Я пытался

import urllib.request
import json      

body = {'locs': [[51.3, 13.4], [51.4, 13.3]]}
myurl = "https://elevation.racemap.com/api"
req = urllib.request.Request(myurl)
req.add_header('Content-Type', 'application/json; charset=utf-8')
jsondata = json.dumps(body)
jsondataasbytes = jsondata.encode('utf-8')   
req.add_header('Content-Length', len(jsondataasbytes))
print (jsondataasbytes)
response = urllib.request.urlopen(req, jsondataasbytes)

, что дает ошибку. Кажется, curl не указывает имя параметра при передаче массива? Я не уверен, как сформировать Json, чтобы соответствовать вводу curl.

1 Ответ

1 голос
/ 25 апреля 2019

Я бы просто использовал requests:

import requests

headers = {
    'Content-Type': 'application/json',
}

data = '[[51.3, 13.4], [51.4, 13.3]]'

response = requests.post('https://elevation.racemap.com/api', headers=headers, data=data)

print(response.status_code)
# 200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...