python

PythonからWebAPIをたたくサンプル

今回お世話になるサイト
 https://labs.goo.ne.jp/api/jp/hiragana-translation/
各自以下ページからアプリケーションIDを取得し、"app_id"へ設定してご利用ください。
 https://labs.goo.ne.jp/apiusage/
実行例
import requests
import json


def fetch_data():
    url = "https://labs.goo.ne.jp/api/hiragana"
    headers = {
        "Content-Type": "application/json"
    }

    data = {
        "app_id": "XXXXX各自取得値を設定XXXX",
        "request_id": "record03",
        "sentence": "漢字が混ざっている文章",
        "output_type": "hiragana"
    }

    try:
        print("Response:B")
        response = requests.post(url, json=data, headers=headers)
        response.raise_for_status()
        result = response.json()
        print("Response:", result)
        print(json.dumps(result, indent=4, ensure_ascii=False))
        return result

    except requests.exceptions.RequestException as e:
        print("An error occurred during API request:", e)
        return None


fetch_data()
実行例
python_test >> python .\api_request.py
{
    "converted": "カンジガ マザッテイル ブンショウ",
    "output_type": "katakana",
    "request_id": "record03"
}
python_test >>
curlだとこんな感じ
curl -X POST  -H "Content-Type: application/json; charset=UTF-8" https://labs.goo.ne.jp/api/hiragana  -d \
'{"app_id": "3***5"
,"request_id": "record03"
,"sentence": "漢字が混ざっている文章"
,"output_type": "hiragana"}' | python -m json.tool
[root@vm022 Python-3.11.0]# curl -X POST  -H "Content-Type: application/json; charset=UTF-8" \
> https://labs.goo.ne.jp/api/hiragana  -d \
> '{"app_id": "3************5"
> ,"request_id": "record03"
> ,"sentence": "漢字が混ざっている文章"
> ,"output_type": "hiragana"}' | python -m json.tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   297  100   117  100   180    152    234 --:--:-- --:--:-- --:--:--   386
{
    "converted": "\u304b\u3093\u3058\u304c \u307e\u3056\u3063\u3066\u3044\u308b \u3076\u3093\u3057\u3087\u3046",
    "output_type": "hiragana",
    "request_id": "record03"
}
[root@vm022 Python-3.11.0]#
--
-- 整形するとUnicodeエスケープされていますが、実際は以下の通り日本語(ひらがな)で
-- 返ってきています。
--
[root@vm022 Python-3.11.0]# curl -X POST  -H "Content-Type: application/json; charset=UTF-8" https://labs.goo.ne.jp/api/hiragana  -d '{"app_id": "3*****5"
,"request_id": "record03"
,"sentence": "漢字が混ざっている文章"
,"output_type": "hiragana"}'
{"converted": "かんじが まざっている ぶんしょう", "output_type": "hiragana", "request_id": "record03"}[root@vm022 Python-3.11.0]#
[root@vm022 Python-3.11.0]#
スポンサーリンク