今回は、「PythonでAPIからデータを取得する方法」にフォーカスします。
それでは、さっそく始めましょう
Python を使って API からデータを取得する手順
それでは、APIから特定のデータを引き出すために必要なステップに焦点を当ててみましょう。
APIやレスポンスステータスコードなどの詳細については、APIへの接続の記事を参照してください。
それでは始めましょう。
例1:オープンソースのCOVID APIからデータを取得する場合
この例では、オープンソースのCOVID APIに接続し、カスタマイズされた方法でjson情報を抽出し、パースします。
1. APIへの接続
まず、以下のようにAPIに接続し、安全な接続を行う必要があります。
今回は、COVID19-IndiaのAPIを使用して、州ごとの一覧から症例データを取得しました。
import requests
import json
response_API = requests.get( 'https://api.covid19india.org/state_district_wise.json' )
#print(response_API.status_code) |
API からデータを取得するため、get()
関数を使用して API から情報を取得しました。
2. APIからデータを取得する
APIとの健全な接続が完了したら、次のタスクはAPIからデータを取得することです。
以下のコードを見てください。
data = response_API.text
|
requests.get(api_path).text`は、前述のAPIからデータを取得するのに役立ちます。
3. データをJSON形式にパースする
データを抽出したら、次はそのデータを以下のような適切なJSON形式に変換してデコードします。
json.loads(data) |
json.loads()関数は、データをJSON形式にパースします。
4. データを取り出して表示する
JSON形式は、データをPythonのdictに似たkey-value形式で格納しています。
したがって、以下のようにキーバリューを使ってデータを取り出して印刷することができます。
parse_json[ 'Andaman and Nicobar Islands' ][ 'districtData' ][ 'South Andaman' ][ 'active' ]
|
全コードは下記からどうぞ!
import requests
import json
response_API = requests.get( 'https://api.covid19india.org/state_district_wise.json' )
#print(response_API.status_code) data = response_API.text
parse_json = json.loads(data)
active_case = parse_json[ 'Andaman and Nicobar Islands' ][ 'districtData' ][ 'South Andaman' ][ 'active' ]
print ( "Active cases in South Andaman:" , active_case)
|
結果は以下の通りです。
Active cases in South Andaman: 19
|
例2:オープンソースのGMAIL APIからデータを取得する場合
では、GMAIL APIに接続し、データを取得してみましょう。
このAPIは、一般的な構造と、APIから取得できる情報を表しています。
それでは始めましょう。
以下のコードを見てください。
例えば、以下の様になります。
import requests
import json
response_API = requests.get( 'https://gmail.googleapis.com/$discovery/rest?version=v1' )
#print(response_API.status_code) data = response_API.text
parse_json = json.loads(data)
info = parse_json[ 'description' ]
print ( "Info about API: , info)
key = parse_json[ 'parameters' ][ 'key' ][ 'description' ]
print ( " ,key)
|
結果は以下の通りです。
Info about API: The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.
Description about the key: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
|
説明
- 最初に、
get()
関数を用いて一般的なGMAIL APIに接続しました。 - APIとの健全な接続が確立したら、
response_object.text
を使ってAPIからデータを取得します。 - ここで、
json.loads()
関数を用いてデータを JSON 形式にパースします。 - 最後に、JSONオブジェクトから、APIの説明やキーの説明などのデータを抽出します。
- サンプルに記載されているAPIリンクにアクセスすることで、値をクロスチェックすることができます。
まとめ
ここまでで、このトピックは終了です。
もし何か疑問があれば、お気軽にコメントください。
Pythonに関連するこのような投稿をもっと見るには、お楽しみに!それまでは、ハッピーラーニング!!。