Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

喫煙できる店を検索する

 喫煙できる店を検索します。リクルートWebサービスが提供するHotpepperグルメサーチAPIを使って「北千住駅から300m以内で喫煙可能な店」を検索します。
Powered by ホットペッパー Webサービス
 HTTP通信ライブラリrequestsによりホットペッパー Webサービスにアクセスし、検索クエリとして北千住駅の緯度・経度、距離(300m以内)、件数(50)を送信します。得られたレスポンスからnon_smokingフィールドの値を得て'全面禁煙'となっている店を除外して表示します。

環境
準備  

APIを利用するにはAPIキーが必要になるため、こちらのサイトでメールアドレスを登録しキーを取得します。
webservice.recruit.co.jp

コード

 requests.getでリクエストURLにアクセス、検索クエリを渡します。戻り値をresponceに入れ、json.loadsにより辞書形式に変換します。 APIリファレンスによると、店舗の情報は results>shop の構造となっており、その内容をresultに取り込みます。その中の'non_smoking'フィールド(辞書のキーが'non_smoking')の値が「全面禁煙」となっているものを除外します。
 コード中の'xxxxxxxxxxxxxxxxxx'には予め取得したAPIキーを入れます。

import requests
import json

# 検索クエリ
query = {
        'key': 'xxxxxxxxxxxxxxxxxx', # APIキー
        'lat': '35.75012327488292', # 北千住駅の緯度
        'lng': '139.80508505043517', # 北千住駅の経度
        'range': '1', # 300m以内
        'count': 50, # 取得データ数
        'format': 'json' # データ形式json
        }

# グルメサーチAPIのリクエストURL        
url = 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/'

# URLとクエリでリクエスト
responce = requests.get(url, query)

# 戻り値をjson形式で読み出し、['results']['shop']を抽出
result = json.loads(responce.text)['results']['shop']

# 'non_smoking'フィールドが'全面禁煙'以外の場合
# 店名、'non_smoking'フィールド、ジャンルを表示
for i in result:
    if i['non_smoking'] != '全面禁煙':
        print(i['name'],'■',
              i['non_smoking'],'■',
              i['genre']['name'])

実行結果

北千住駅から300m以内で「全面禁煙」ではない店が一覧で表示されます。

ダッキーダック Ducky Duck 北千住店 ■ 未確認 ■ カフェ・スイーツ
千寿籠太 北千住店 ■ 一部禁煙 ■ 居酒屋
八重寿 ■ 未確認 ■ 居酒屋
ROCKBAR 7thchord セブンスコード ■ 禁煙席なし ■ ダイニングバー・バル
ダーツ&ビリヤード Link リンク 北千住店 ■ 禁煙席なし ■ カラオケ・パーティ
それゆけ!鶏ヤロー! 北千住店 ■ 禁煙席なし ■ 居酒屋
かほりや ■ 一部禁煙 ■ 居酒屋
個室居酒屋 水面月 MINAMOTSUKI 北千住店 ■ 禁煙席なし ■ 居酒屋
個室居酒屋 ゆらり 北千住店 ■ 禁煙席なし ■ 居酒屋
おぼん de ごはん ルミネ北千住店 ■ 未確認 ■ その他グルメ
ここのつ ■ 一部禁煙 ■ 創作料理
久助 北千住 ■ 禁煙席なし ■ 居酒屋
目利きの銀次 北千住西口駅前店 ■ 一部禁煙 ■ 居酒屋
カラオケアイランド 北千住 ■ 一部禁煙 ■ カラオケ・パーティ

以下のサイトを参考にさせていただきました

Zenn > ホットペッパーのAPIを使ってレストランのデータを取得する

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村