2016-06-26 19 views
1

requestsライブラリをcreate a new file in a GitHubリポジトリに使用する予定です。curl PUTをPythonリクエストに翻訳する際の問題:「JSONの解析に関する問題」

curl -X PUT -d '{"path": "testfile.txt", "message": "test", "content": "aGVsbG8y"}' https://api.github.com/repos/LOGIN/testrepo/contents/testfile.txt\?access_token\=TOKEN 

しかし、私は「問題JSONの解析」の要求で同じことをしようとしたときにエラー(ステータスコード400)に実行し続ける:コマンドで次のように入力すると、行は(LOGINし、必要に応じてTOKENを交換する)私の作品:

data = { 
    "message": "test", 
    "content": "aGVsbG8y", 
    "path": "testfile.txt" 
} 
url = "https://api.github.com/repos/LOGIN/testrepo/contents/testfile.txt?access_token={}".format(TOKEN) 
response = requests.put(url, data=data) 

私が何をやっているかについてのヒントはありますか?私は同様の質問をチェックしたが、適切な調整が見つからなかった。ありがとう!

答えて

6

パラメータdataを渡すだけで、自動的にフォームがエンコードされたパラメータとして辞書が送信されるためです。

response = requests.put(url, json=data) 
:代わりにJSON

import json 
data = { 
    "message": "test", 
    "content": "aGVsbG8y", 
    "path": "testfile.txt" 
} 
url = "https://api.github.com/repos/LOGIN/testrepo/contents/testfile.txt?access_token={}".format(TOKEN) 
response = requests.put(url, data=json.dumps(data)) 

それとも、少なくともバージョン2.4.2を使用している場合、あなたはこのようにそれを行うことができますようにそれを渡します