PythonでのAPI呼び出しの作成


Scope: This post will help you learn to make API calls using python to fetch data (GET requests).


データは、それがアプリケーション/企業を駆動するので、最近最重要性を与えられました.アプリケーションは、Webサイト、データサイエンスや機械学習モデルなどがありますので、それはあなたのアプリケーションに役立つこのデータを取得する方法を学ぶことが重要であり、このポストは、同じことを理解するのに役立ちます.
注:概念を理解するためにいくつかのコードスニペットを見てみましょう.完全なコードを見つけることができますhere

APIとは


基本的な条件では、APIは、アプリケーションが通信(リクエストを送信し、データを受信し、その逆)を互いに可能にするチャネルのようです.

ソースmedium

API呼び出しを行う


どう待って?さて、Pythonでデータを取得する方法は様々です.socket , など)この投稿についてはrequests Pythonモジュールrequests シンプルでエレガントなHTTPライブラリです.インストールするには、次のコマンドを使用します
pip install requests
インストールされているバージョンをチェックするには
 pip freeze | grep requests
 requests==2.22.0
もっとrequests
あなたの環境のように見えるように、いくつかの要求をスローする準備ができました.人気のある広告を取りましょう.
def get_data(self, api):
        response = requests.get(f"{api}")
        if response.status_code == 200:
            print("sucessfully fetched the data")
            self.formatted_print(response.json())
        else:
            print(f"Hello person, there's a {response.status_code} error with your request")
データが受信されると、このようになります.

上記のように、まずステータスコードをチェックし、データを印刷します.このコードは、私たちの要求に基づいて受信された応答について教えます.200 コードは、私たちが正常に情報を受け取ったことを伝えます.複数のコードは以下のように異なる応答を示します
コード
ステータス
説明
200
OK
リクエストが完了しました.
201
作成
新しいリソースが正常に作成されました.
400
不良依頼
リクエストが不正であった.
401
無許可の
要求は認証トークンを含んでいなかったか、認証トークンが期限切れになった.
403
禁断の
クライアントは要求されたリソースにアクセスする許可を持っていなかった.
404
見出されない
要求されたリソースは見つかりませんでした.
405
許されない方法
リクエストのHTTPメソッドはリソースによってサポートされませんでした.たとえば、エージェントAPIでdeleteメソッドを使用できません.
409
対立
紛争のため要求は完了できなかった.例えば、指定されたファイルまたはフォルダ名が既に親位置に存在するならば、後のContentStoreフォルダAPIは完了できません.
500
サーバ内部エラー
サーバ側での内部エラーのため、リクエストは完了しませんでした.
503
サービス不可
サーバが利用できなかった.
同様に、いくつかのパラメータと共にAPI呼び出しを行うこともできます.私たちの場合では、特定のユーザの記事を取り出しましょう- ME :).
    parameters = {
            "username": "kedark"
        }
パラメータを変数に格納しましたが、これでAPI呼び出しを行いましょう.
def get_user_data(self, api, parameters):
        response = requests.get(f"{api}", params=parameters)
        if response.status_code == 200:
            print("sucessfully fetched the data with parameters provided")
            self.formatted_print(response.json())
        else:
            print(
                f"Hello person, there's a {response.status_code} error with your request")
受信したデータは、次のようになります

さて、あなたはちょうどAPIリクエストを使用してデータを受け取りました.
我々のプログラムでデータを印刷するにはresponse.json() メソッドの結果のJSONオブジェクトを返します(結果がJSON形式で書き込まれた場合、エラーが発生しない場合).
同様に、異なる情報を返す別のメソッドがあります
プロパティ/メソッド
説明
apparent_encoding
見かけ上のエンコーディングを返す
close ()
サーバへの接続を閉じる
内容
レスポンスの内容をバイト数で返す
クッキー
サーバから送られたクッキーを持つCookieJarオブジェクトを返す
経過
レスポンスの到着にリクエストを送るのを経過した時間が経過した時間デルタオブジェクトを返す
エンコード
r . textをデコードする際に使用するエンコーディングを返す
ヘッダ
レスポンスヘッダの辞書を返す
歴史
リクエストの履歴を保持する応答オブジェクトのリストを返します.
永久に
レスポンスが永久にリダイレクトされたURLであるならば、trueを返します
リダイレクト
レスポンスがリダイレクトされた場合にTRUE、それ以外の場合false
iterdir contents ()
レスポンスを繰り返す
iterage lines ()
レスポンスの行を繰り返す
json ()
結果のJSONオブジェクトを返します(結果がJSON形式で書き込まれた場合、エラーが発生しない場合)
リンク
ヘッダリンクを返す

リダイレクションの次のリクエストに対するPreparedRequestオブジェクトを返す
ok
StatusHeightコードが400未満の場合にtrueを返します
例例54 - 1 RaiseRunFound ()の取得
エラーが発生した場合、このメソッドはHttpErrorオブジェクトを返します
理由
ステータスコードに対応するテキストを返す
リクエスト
応答を要求したリクエストオブジェクトを返す
ステータスコード
ステータスを示す数値を返します( 200がOKで、404が見つかりません).
テキスト
Unicodeでレスポンスの内容を返す
URL
レスポンスのURLを返す
ソースW3
さて、あなたはそれらを試してみることができます.それはよい運動になるでしょう.このデータは、今すぐあなたのアプリケーションをフィードするために使用することができます.CSVを使用している場合は、JSONの受信は簡単にCSVに変換することができますhow-can-i-convert-json-to-csv あなたがこれを達成することができます.

コード


このコードを使用して、最初のAPIリクエストを作成できます
< div >
< hr/>
それは、このポスト人々のためのすべてです.あなたがそれを楽しんだ望み.忘れないで❤ or 📑 この記事は< http ://p >
一日をお過ごしください
ハッピーコーディング!p >