0
私のシステムでは、curl POSTを使用してtipboardのAPIをテストしています。私は正常に使用してボードにPOSTを送信することができました。最後に使用しなければならないスクリプトはPythonに基づいているcurl POSTをPythonリクエストに変換する
curl https://** SECRET **/api/v0.1/** SECRET **/push -X POST -d "tile=big_value" -d "key=t_out" -d 'data={"title": "Outside Temperature", "description": "Temperature gathered by DS18B20 sensor", "big-value": "24.4 °C"}'
、私はいくつかの研究を行なったし、requests Pythonライブラリを見つけました。
私は次のコードに私のカール要求を変換:私は私のペイロードが正しく、最も可能性の高い問題に設定されていないことを前提としてい
There is no 'tile' field in your request.
(400, 'Bad Request')
:
payload = {'title': 'big_value', 'key': 't_out', 'data': '"title": "Outside Temperature", "description": "Temperature gathered by DS18B20 sensor", "big-value": "24.4 °C"'}
r = requests.post("https://** SECRET **/api/v0.1/** SECRET **/push", data=payload)
print(r.text)
print(r.status_code, r.reason)
私に次のエラーコードを示しますcurlのような複数の "データ要素"を送信するのではなく、Pythonを使用するときにはただ1つの "data"オブジェクトしか送信しないということです。
私のカールの要求をPythonの変種に均等に変換できますか?
編集:
payload = {'tile': 'big_value', 'key': 't_out', 'data': '"title": "Outside Temperature", "description": "Temperature gathered by DS18B20 sensor", "big-value": "24.4 °C"'}
r = requests.post("https://dev-01.linuxmind.de/api/v0.1/46d7213bd81d441783dc9ab77e5515c2/push", data=payload)
print(r.text)
print(r.status_code, r.reason)
:私は私のリクエストで「タイトル」ではなく「タイル」を持っていたダン・ロウズヒントに続いて
は、以下の(編集済み)コードを使用して別のエラーで、さらに私を導きます
エラー:
Invalid JSON data.
(400, 'Bad Request')
あなたのカールコードは 'tile = big_value'を設定しますが、Pythonコードでは' tile'ではなく 'title'として設定します。 –
あなたのデータパラメータは、文字列ではなく別のPython辞書である必要があります –
この回答を見てください。 http://stackoverflow.com/a/29687915/2308683 –