Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

PythonでAPIを呼び出すサンプルプログラムをご紹介

投稿日:2022年4月2日 更新日:

 

<目次>

(1) PythonでAPIを呼び出すサンプルプログラム
 (1-1) 構文
 (1-2) STEP1:事前準備
 (1-3) STEP2:疎通①(最もシンプルなAPI呼び出し)
 (1-4) STEP3(任意):疎通②(Basic認証ありのAPI呼び出し)

(1) PythonでAPIを呼び出すサンプルプログラム

本記事では以下の内容をカバーします。
・①PythonでAPIを呼び出すための構文
・②PythonでAPIを呼び出すためのサンプルプログラム(最もシンプルなAPI呼び出し)
・③PythonでAPIを呼び出すためのサンプルプログラム(Basic認証ありのAPI呼び出し)

(1-1) 構文

(構文)
# API呼び出しに必要なパッケージのimport
import requests
# getメソッドでURLに対してGETリクエストを送る
response = requests.get("[APIのURL]")

(1-2) STEP1:事前準備

事前準備として、APIを呼び出すために必要な「request」ライブラリを下記のpipコマンドでインストールします。
> pip install requests --users
(図111)

ちなみに「–users」はpipによるインストールをユーザーのホームディレクトリに対して行うように指示するオプションです。通常pipによるインストールは、システムディレクトリ(例:/usr/local/lib/python3.9)に対して実施しますが、これには「管理者権限」が必要となります。

 
「–users」を付与する事で、そういった管理者権限を必要としない、ユーザー自身に閉じたインストールを実施できます。

(1-3) STEP2:疎通①(最もシンプルなAPI呼び出し)

上記構文に沿って、サンプルプログラムで最もシンプルなケースを疎通してみます。
 
(サンプルプログラム)
# API呼び出しに必要なパッケージのimport
import requests
# getメソッドでURLに対してGETリクエストを送る
response = requests.get("https://zipcloud.ibsnet.co.jp/api/search?zipcode=221-0866")
# レスポンスをテキスト形式に変換
result = response.text
# 結果をコンソール出力
print(result)
 
(実行結果例)
PS C:\dev\Python\ApiTest> & C:/Python310/python.exe c:/dev/Python/ApiTest/__init__.py
{
        "message": null,
        "results": [
                {
                        "address1": "神奈川県",
                        "address2": "横浜市神奈川区",
                        "address3": "羽沢南",
                        "kana1": "カナガワケン",
                        "kana2": "ヨコハマシカナガワク",
                        "kana3": "ハザワミナミ",
                        "prefcode": "14",
                        "zipcode": "2210866"
                }
        ],
        "status": 200
}
PS C:\dev\Python\ApiTest>
(図112)

(1-4) STEP3(任意):疎通②(Basic認証ありのAPI呼び出し)

次にBasic認証がある場合のAPI呼び出しの例をご紹介します。
 
Basic認証は、いわゆる「ユーザーID/パスワード」で認証を行う方式ですが、この「ユーザーID/パスワード」の情報はHTTPリクエストのヘッダーに乗せて送る形になります。
 
先程のプログラムと比較して、getメソッドの引数が追加になっています(ID/Passwordが追加)
 
(構文)ポイント
    # 先程と異なり、第2引数でBasic認証に必要な「auth=(user_id,password)」を与えています。
    response = requests.get(url, auth=(user_id, password))
(サンプルプログラム)
import requests
import os
from requests.auth import HTTPBasicAuth
from dotenv import load_dotenv
from pathlib import Path

# このPythonファイルがあるパスを取得
file_path = Path(__file__).parent
# 環境変数用のファイル「.env」のパスを定義
env_path = file_path/'.env'
# 環境変数用のファイル「.env」をロードする
load_dotenv(dotenv_path=env_path)

def main():
    # APIのURL
    url = '[APIのURL]'
    # Basic認証で必要なID/Password
    user_id = os.environ['USER_ID']
    password = os.environ['PASSWORD']
    # getメソッドでURLに対してGETリクエストを送る
    # ▲先程と異なり、第2引数でBasic認証に必要な「auth=(user_id,password)」を与えています。
    response = requests.get(url, auth=(user_id, password))
    # レスポンスの内容をtext形式で取得
    result = response.text
    # 結果をコンソール出力
    print(result)

if __name__ == "__main__":
    main()
(図113)Basic認証ありのサンプル

(※注)
上記プログラムとは別に、同じ階層に環境変数を定義する用の「.env」ファイルを用意して、環境変数をそのファイルに定義する必要があります。また、それをロードするために「dotenv」ライブラリをpipでインストールする必要もあります。
 
(例)「.env」の記述例
USER_ID=XXXXXXX
PASSWORD=XXXXXX

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

PythonのdatapackageとSQLAlchemy、SQLiteを使ってcsvデータをSELECTする

(0)目次&概説 (1) 今回の目的  (1-1) 目的  (1-2) 前提条件 (2) 実施手順  (2-0) 事前作業  (2-1) データ(csv)のロード  (2-2) エンジンの作成  (2 …

Python環境にpyodbcをインストールしてSQLServerに接続する手順

<目次> (1) PythonにpyodbcをインストールしてSQLServerに接続する手順  (1-1) 手順1:ODBCドライバのインストール  (1-2) 手順2:pythonパッケージの導入 …

Pythonで画像をcsvに変換する方法について

  <目次> (1) Pythonで画像をcsvに変換する方法について  (1-0) やりたいこと  (1-1) STEP1:前提(Kerasにおける画像データの取り扱い形式)  (1-2) …

PythonのPandas使用時に発生した「UnicodeEncodeError: ‘ascii’ codec can’t encode characters~」エラーの対処方法について

(0)目次&概説 (1) エラー対応1:UnicodeEncodeError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エラーとなったソース …

PythonにOpenCVを導入して画像を読込み&表示&拡大縮小してみる

(0)目次&概説 (1) OpenCVとは (2) OpenCVのインストール  (2-1) インストール資源の入手  (2-2) インストール時の注意事項  (2-3) インストールの実行 (3) …

  • English (United States)
  • 日本語
Top