25
Help us understand the problem. What are the problem?

posted at

updated at

Organization

簡単にWeb APIを使ってラーメン屋の情報を出そう!!

WebAPIを使って街中のラーメン屋の情報を取得してみる。

環境

OS:Windows 10
言語:Python 3.10
対象WebAPl:ホットペッパーグルメリサーチAPI
ホットペッパー Webサービス

今回使うモジュールは、

・Json,requests,random

流れとして

1.requestsでラーメン屋の情報を取得する。
2.Jsonファイルを辞書として読み込ませる。
3.ランダムで一軒表示させる。

まず1,2をやってみる。

import json
import requests

gourmet='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/'
APIKEY = apikey   #自分で取得してね。
genre = 'G013'    #ラーメン
middleid = 'Y505' #札幌、大通
url = gourmet + "?key=" + APIKEY + '&middle_area='+ middleid +'&genre=' + genre +'&format=json'
#jsonを用いて書くためフォーマットをjsonにしておく。

l = requests.get(url)       #getで情報を取得
lunch = json.loads(l.text)  #jsonファイルを辞書として読み込む
print(lunch)                #出力する。

実行結果

{'results': {'api_version': '1.26', 'results_available': 14, 'results_returned': '10', 'results_start': 1, 'shop':
 [{'access': 'JR札幌駅/地下鉄南北線・東豊線 さっぽろ駅 徒歩2分', 'address': '北海道札幌市北区北7条西2丁目20\u3000東京建物札幌ビルB1F',
 'band': '不可', 'barrier_free': 'なし', 'budget': {'average': '1000円', 'code': 'B011', 'name': '1001~1500円'}, 
'budget_memo': '油そば・台湾まぜそば・坦々麺\u3000680円~', 'capacity': 20, 'card': '利用不可', 'catch': '札幌駅北口にオープン!', 
'charter': '貸切不可', 'child': 'お子様連れOK', 'close': '土、日、祝 日',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 割愛 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

凄い情報が出てきた!!

レスポンスフィールドを参考にして必要な情報を絞ってみる

ramen.py(一部)
l = requests.get(url)       
lunch = json.loads(l.text) 
print(lunch['results']['shop'][0]['name'])      #shopフィールドの 0 番に入っているお店の名前
print(lunch['results']['shop'][0]['open'])      #shopフィールドの 0 番に入っているお店の営業日時
print(lunch['results']['shop'][0]['address'])   #shopフィールドの 0 番に入っているお店の場所

実行結果

まぜそば専門店 麺や太郎
月~金、祝前日: 11:30~16:0017:00~21:30
北海道札幌市北区北7条西2丁目20 東京建物札幌ビルB1F

やった上手くいった!!

最後はランダムに一軒だけ表示させる。

ramen.py(一部)

import json
import requests
import random

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 省略 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

cou=len(lunch['results']['shop'])                  #軒数をlenで割り出す。
num=random.randrange(0,cou-1)                      #random関数で0から軒数-1の値をnumにいれる。

print(lunch['results']['shop'][num]['name'])      #shopフィールドの num 番に入っているお店の名前
print(lunch['results']['shop'][num]['open'])      #shopフィールドの num 番に入っているお店の営業日時
print(lunch['results']['shop'][num]['address'])   #shopフィールドの num 番に入っているお店の場所

実行結果

ラーメン ねるら
月、水、土: 11:30~22:00 (料理L.O. 21:30)火、木、金: 11:30~16:30 (料理L.O. 16:00)祝日、祝前日: 11:30~18:00 (料理L.O. 17:30)
北海道札幌市中央区南1条西9-1-3
市電中央区役所前駅から徒歩3分。駅を降りて、南1条通を東に進む。2つ目の信号の先の曲がり角を左に曲がった右手です。

よし、さっきの実行結果と今回の実行結果に出てきたお店が違うぞ~!!
これでラーメン屋スクリプト完成だ~~!!

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
25
Help us understand the problem. What are the problem?