Pythonリクエスト:ガイド
Pythonでアプリケーションを構築しているときに、サードパーティのサービスに接続したい場合があります。たとえば、フィットネスツールを作成している場合は、Fitbit APIに接続して、運動データを確認することができます。テキストメッセージを送信できるアプリは、TwilioAPIに接続できます。
Pythonでは、リクエストライブラリを使用してリクエストを行うことができるため、サードパーティのWebサービスをアプリケーションに接続できます。このガイドでは、Pythonリクエストライブラリと、それを使用してHTTPリクエストを送信する方法について学習します。
Webリクエスト:復習
リクエストはインターネットの中心にあります。この記事をクリックすると、HTTPリクエストがCareerKarmaサーバーに送信されました。そのリクエストは、サーバーがページを見つけられるように、表示したいWebページをサーバーに通知しました。 Webページが見つかると、Webサーバーがそれをブラウザに返しました。このプロセスにより、このチュートリアルを見ることができます。
Webリクエストには、さまざまな形式があります。このWebページを表示するために行ったリクエストのタイプは、GETリクエストと呼ばれていました。このタイプのリクエストでは、データを取得できます。サーバー上のリソースを変更するために使用されるPOSTやPUTなどの他のタイプのリクエストがあります。このチュートリアルでは、GETリクエストとPOSTリクエストに焦点を当てます。
リクエストのインストール方法
Requestsは、Webリクエストを作成できるPython用のHTTPライブラリです。
Pythonを使用してWebリクエストを作成する前に、Pythonリクエストコードライブラリをインストールする必要があります。次のコマンドを使用してこれを行うことができます:
pip install requests
Pythonパッケージをダウンロードしたので、Webリクエストを行う準備ができました。
GETリクエストの作成方法
作成する最も一般的なタイプのウェブリクエストはGETリクエストです。このタイプのリクエストを使用すると、サーバーからデータを取得できます。
参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。
平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。
猫の事実のリストを取得できるアプリを作成しているとしましょう。そのために、cat-factsと呼ばれるAPIを使用します。このAPIは一般に公開されているため、ログインするための認証情報は必要ありません。このコードを使用してAPIにリクエストを送信できます:
import requests res = requests.get('https://cat-fact.herokuapp.com/facts') print(res.status_code)
このコードは200を返しました。コードを分解してみましょう。
最初の行で、リクエストライブラリをインポートしました。これにより、チュートリアルで使用するリクエストライブラリにアクセスできるようになりました。次に、requests.get()
を使用しました Webリクエストを行うメソッド。 .put()
のようなメソッドを使用することもできます または.post()
他のタイプのリクエストを行うためですが、この場合は、cat-factsAPIからデータを取得するだけで済みます。
次に、Webリクエストからステータスコードを印刷しました。番号200が返されました。これは、Webリクエストが正常に行われたことを示しています。これらの数値の意味については、チュートリアルの後半で説明します。
リクエストの表示
上記の例では、リクエストのステータスコードを出力しています。しかし、取得したデータをどのように確認できますか?猫の事実はどこにありますか?ここで、.textと.json()
メソッドが登場します。
テキスト応答の表示
.textメソッドを使用して、Webリクエストの結果を確認できます:
import requests res = requests.get('https://cat-fact.herokuapp.com/facts') print(res.text)
このコードは猫の事実のリストを返しました。ただし、クエリするデータはAPIであるため、これはあまり実用的ではありません。現在、猫の事実のPythonリストがありますが、プレーンテキストであるため、それらを読むことは困難です。
JSON応答の表示
猫のファクトを保存できるより便利な形式はJSONです。次のコードを使用して、リクエストからJSONデータを取得できます:
print(res.json())
私たちのコードは猫の事実の長いリストを返します。リストの最初のレコードは次のとおりです:
{'_id': '58e009550aac31001185ed12', 'text': 'The oldest cat video on YouTube dates back to 1894.', 'type': 'cat', 'user': {'_id': '58e007480aac31001185ecef', 'name': {'first': 'Kasimir', 'last': 'Schulz'}}, 'upvotes': 6, 'userUpvoted': None}
成功!猫の事実のリストを取得することができました。
POSTリクエストの作成方法
リクエストライブラリを使用してPOSTリクエストを作成することもできます。これにより、Webサーバーに保存されているデータを変更できます。
この例では、AirtableAPIを使用します。これは、POSTリクエストをサポートするAPIを使用する必要があり、cat-factsAPIが読み取り専用であるためです。
私たちが飲むお茶をすべて記録するデータベースがあるとします。もう一杯お茶を飲んだばかりで、それをデータベースに追加したいと思います。このコードを使用してこれを行うことができます:
import requests headers = { 'Authorization': 'Bearer API_KEY', 'Content-Type': 'application/json', } data = '{"records": [{"fields": {"Drink": "Black Decaf Tea"}}]}' res = requests.post('https://cat-fact.herokuapp.com/facts', headers=headers, data=data) print(res.json())
返されたコード:
{'records': [{'id': 'recqUEPuXEAXaNl1L', 'fields': {'Drink': 'Black Decaf Tea', 'Date': '2020-06-16T08:53:02.000Z'}, 'createdTime': '2020-06-16T08:53:02.000Z'}]}
これは、HTTPリクエストが成功したことを示しています。 APIを使用してAirtableデータベースにレコードを追加しました。これらのコード行についてさらに説明しましょう。
まず、リクエストライブラリをインポートして、コードでHTTPリクエストを作成できるようにしました。
次に、2つのキーと値を含む辞書を定義しました。1つは認証キーを格納し、もう1つはWebサーバーに送信するコンテンツのタイプを指定します。これらは、AirtableAPIにリクエストを送信するために送信する必要のあるヘッダーです。
次に、POSTリクエストと一緒に送信したいデータを格納するdataという変数を宣言しました。この場合、データベースに「ブラックカフェイン抜きのお茶」という飲み物を追加していました。次に、requests.post()
を使用しました メソッドを使用し、ヘッダーとデータをパラメーターとして指定しました。これにより、AirtableAPIにPOSTリクエストを送信できるようになりました。
最後に、res.json()
を使用して、リクエストの結果をJSON形式で出力しました。 。
HTTPステータスコード
Webリクエストを行うと、HTTPプロトコルは一意のステータスコードを返します。これにより、Webリクエストが成功したかどうか、またはエラーが発生したかどうかを確認できます。 404など、これらのいくつかはすでに見たことがあるでしょう。
Pythonリクエストでリクエストを行うときに発生する可能性のあるステータスコードのリファレンスリストは次のとおりです。
- 1XX:情報
- 2XX:リクエストは正常に行われました
- 3XX:リクエストがリダイレクトされました
- 4XX:クライアント側のエラー
- 5XX:サーバー側のエラー
これらのステータスコードを知っていると、プログラムにデバッグを追加できます。前のcat-factsAPIの例からGETリクエストを見てみましょう。アクセスしているリソースが見つからない場合にメッセージを出力したいとします。このコードを使用してこれを行うことができます:
import requests res = requests.get('https://cat-fact.herokuapp.com/facts') if res.status_code == 200: print("Success") else : print("Error")
返されたコード:成功。リクエストのステータスコードは200であるため、「成功」というメッセージがコンソールに出力されます。ただし、リクエストが失敗した場合(たとえば、無効なURLを指定した場合)、「エラー」というメッセージがコンソールに出力されます。
結論
Pythonリクエストライブラリを使用すると、PythonでHTTPリクエストを作成できます。このガイドでは、Pythonリクエストライブラリを使用してGETリクエストとPOSTリクエストを作成する方法について説明しましたが、ライブラリを使用してPUTリクエストとDELETEリクエストを作成することもできます。
requests.get()
のようなメソッドを使用する場合 またはrequests.post()
、Pythonは、アクセスするWebリソースにリクエストを送信します。リクエストにヘッダーとデータを添付できます。これにより、所有しているWebリソースに変更を加えたい場合に情報を送信できます。
これで、エキスパートのようにPythonリクエストライブラリの使用を開始する準備が整いました。
-
Pythonインタープリター:ステップバイステップガイド
Pythonインタープリターは、マシンに正しいバージョンのPythonがインストールされていることを確認しなくてもオンラインで存在するため、Pythonは非常にアクセスしやすく学習できます。この記事では、Pythonインタープリターとは何かについて説明し、オンラインで使用できる、より人気のある、初心者向けのインタープリターをいくつかリストします。 Pythonプログラムはどのように実行されますか? Pythonは、Javaと同様に、インタプリタ言語またはコンパイル言語として完全に分類することはできません。両方のほんの少しです。 この場合にコンパイルされるということは、どの
-
Pythonディクショナリ値:ガイド
Pythonディクショナリvalues()メソッドは、ディクショナリ内の値を含むオブジェクトを返します。このメソッドは、ディクショナリの値のみを反復処理する場合に役立ちます。後で辞書を変更すると、values()メソッドに格納されているデータが変更され、新しい辞書が反映されます。 Pythonを使用している場合は、データを辞書に保存することを決定できます。たとえば、レストラン管理システムを構築しているとします。辞書を使用して、各注文に関するデータを保存することをお勧めします。 疑問に思われるかもしれません。辞書に保存されている値を取得するにはどうすればよいですか。ここで、Pythonディ