Я искал несколько вещей, и я просто не нахожу того, что делает именно то, что я делаю. Я нашел те, которые близки, но я не могу понять.Преобразование curl в Python requests.put
У меня есть эта инструкция для завивки. Он возвращает 204 при успешном завершении, и он отлично работает.
# curl -v -H "Content-type: application/json" -X PUT -d '{"latitude":47.629355,"longitude":-122.3794778}' "http://myserver.com/location/private/location"
Когда я пытаюсь преобразовать его запросов Python, кажется, что это должно быть следующим:
headers = {'Content-type': 'application/json'}
data = {"latitude":'47.629355',"longitude":'-122.3794778'}
r = requests.put("http://myserver.com/location/private/location", headers=headers, data=data)
Однако это терпит неудачу и возвращение 400 (плохой запрос) а. Так что что-то не так, как я его создал.
Я продолжал суетиться, меняя кавычки и т. Д. Но, основываясь на том, что я читал на SO и на http://docs.python-requests.org/, мне кажется, что я делаю это правильно.
Любая мудрость для обмена будет оценена по достоинству. Благодаря!
Вы предоставляете lat/long в curl call как float, но в вашем коде python как строку. Попробуйте: 'data = {" широта ": 47.629355," longitude ": -122.3794778}'. Код выглядит иначе. – Bjorn
Это то, что я изначально имел для данных, и это не сработало. Я попробовал снова, чтобы убедиться, что я не пропустил его, и все еще не работает. Все еще получаю 400. – mikecole79
Печать r.text показывает мне это «Неверный запрос: Не удалось прочитать номер: latitude = 47.629355 & longitude = -122.3794778» – mikecole79