curl to Python 変換ツール
curlコマンドをPythonのrequestsコードへ、ブラウザー内で即座に変換します。コマンドはお使いのデバイスに留まります。
あなたのcurlコマンドはブラウザー内でローカルにPythonへ変換され、アップロードされることはありません。ただし、本番環境の実際のトークンや認証情報をどのツールにも貼り付けないようにしてください。
リクエストを送信したいですか?APIリクエストクライアントをお試しください。
curl to Python 変換ツール について
このcurl to python変換ツールは、ターミナル・ブラウザーのDevTools・APIドキュメントからコピーしたcurlコマンドを受け取り、requestsライブラリを使ったクリーンなPythonスクリプトに書き換えます。curl to requests変換ツールとして、-X、-H、-d、--data-raw、--json、-u、-b、-G といったフラグを読み取り、適切なHTTPメソッドを選び、有効なJSONボディには json=、フォームペイロードには data= を選ぶため、最初の実行から呼び出しが機能します。手早いAPIテストをPythonスクリプト・ノートブック・バックエンド連携へ、ヘッダーを手入力し直すことなく移すのに便利です。変換全体がブラウザー内で実行されるため、curlコマンドとその中のトークンはお使いのデバイス上でローカルに処理され、アップロードされることはありません。
機能
- 推測したHTTPメソッドで requests.request(method, url, ...) 呼び出しを生成
- すべての -H/--header フラグからPythonのheaders辞書を構築
- 有効なJSONボディには json=、フォームエンコードのペイロードには data= を使用
- JSONボディを編集可能なPythonのdictリテラルとして整形表示
- -u/--user をBasic認証のAuthorizationヘッダーにマッピングし、cookie・user-agent・refererを処理
- -G/--get のデータをクエリ文字列としてURLに付加
- -k や出力先ファイルのオプションなど、requestsに相当しないフラグを警告
- 結果をコピー、またはワンクリックで request.py としてダウンロード
curl to Python 変換ツール の使い方
- curlコマンドをcURLコマンドボックスに貼り付けます。
- 出力パネルで生成されたPythonのrequestsスクリプトを読みます。
- 調整またはスキップされたフラグがないか警告バナーを確認します。
- 「コピー」をクリックするか、スクリプトを request.py としてダウンロードします。
例
入力
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"Ada"}'
出力
import requests
url = "https://api.example.com/users"
headers = {
"Content-Type": "application/json",
}
payload = {
"name": "Ada"
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.status_code)
print(response.text)
JSONボディは json= で渡され、requestsが代わりにシリアライズします。
よくあるエラーとトラブルシューティング
- json= を期待したのに出力が data= を使う。 — ボディを --json で送るか、-H "Content-Type: application/json" を追加してください。そうすると変換ツールがJSONと認識し json= に切り替えます。
- スクリプトを実行すると ModuleNotFoundError: No module named 'requests' が出る。 — まず pip install requests で依存をインストールしてください。生成コードはurllibではなくサードパーティのrequestsライブラリを対象としています。
- JSONボディがPythonのdictではなく引用符付きの文字列として出力される。 — ボディが有効なJSONでない場合に起こります。JSONを修正するか、文字列のまま data= で送ってください。
よくある質問
- curlコマンドをPythonに変換するには?
- curlコマンドを入力ボックスに貼り付けると、変換ツールが右側にPythonのrequestsスクリプトを表示します。コピーまたは request.py としてダウンロードできます。
- これはrequestsライブラリ向けのコードを生成しますか、それともurllibですか?
- 人気のrequestsライブラリを対象とし、requests.request(method, url, ...) 呼び出しを出力します。スクリプトを実行する前に pip install requests でインストールしてください。
- 変換ツールはいつ json= と data= を使い分けますか?
- ボディが有効なJSON(--json またはJSONのContent-Typeで送られたもの)のときは requests がdictをシリアライズするよう json= を使い、フォームエンコードや生の文字列ボディには data= を使います。
- curl -u のBasic認証の値はPythonの出力でどう扱われますか?
- -u または --user の値はheaders辞書内の Authorization: Basic ヘッダーにbase64エンコードされ、curlが通信時に送るものと一致します。
- Pythonに変換するとき、私のcurlコマンドはアップロードされますか?
- いいえ。curl to pythonの変換は完全にブラウザー内で実行されるため、コマンドやその中の認証情報はお使いのデバイスに留まります。
関連ツール
すべての ArrayKit ツール