PythonでAPIを取得する
PythonでAPIを扱うときは、以下のようなライブラリを使うことが多いと思います。
import requests
import json
requests
はAPIリクエストを送るためのライブラリで、json
はJSON形式のデータを扱うためのライブラリです。基本的にAPIを叩くとJSON形式でデータが返ってくるので、それを変換してやる必要があります。
しかし、APIを叩く際にはいくつか注意点があります。特に、URLエンコードに関する注意点があります。日本語や特殊文字を含むURLをリクエストする際には、URLエンコードを行う必要があります。
import requests
import json
import urllib.parse
param="日本語や特殊文字を含むパラメータ"
url = 'https://example.com/api?param='
encorded_param = urllib.parse.quote(param)
url += encorded_param
response = requests.get(url)
data = json.loads(response.text)
パーセントURLエンコードを行うためには、urllib.parse.quote()
を使います。これで日本語や特殊文字を含むURLをリクエストすることができます。具体的に言うと、以下のようなURLがエンコードされます(上のコードとは関係ありません)。
https%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%25E6%2596%25B0%25E4%25B8%2596%25E7%25B4%2580%25E3%2582%25A8%25E3%2583%25B4%25E3%2582%25A1%25E3%2583%25B3%25E3%2582%25B2%25E3%2583%25AA%25E3%2582%25AA%25E3%2583%25B3&usg=AOvVaw2Pi4nFYyX41yEBpz_jlsLX&opi=89978449
これによって、意図した通りのAPIリクエストを送ることができます。基本的には、URLエンコードを行っておけば問題ないでしょう。
追記
コメントで実行時エラーが起きるとのご指摘をいただいたのでコードを修正しました。ご指摘ありがとうございます。