googleのジオコーディングを使い、読み込んできた施設名から緯度経度を出力するプログラムを書きました。現在のプログラムでは読み込んだ施設名からジオコーディングできなかった場合は書き出されないプログラムになっています。
読み込みテキスト
表参道口駅3番出口
住友ビルディング前
ファミリーマート 原宿東店
書き出しテキスト
表参道口駅,日本、〒151-0051 東京都渋谷区 千駄ヶ谷3丁目54−8,35.6748175,139.7049112
ファミリーマート 原宿東店,日本、〒150-0001 東京都渋谷区神宮前1丁目13−17 シャンゼール原宿2号館,35.6695665,139.7034755
ジオコーディングできなくても「住友ビルディング前」という施設名のみは書き出すプログラムに変更したく、アドバイスいただけないでしょうか。
-- coding: utf-8 --
import requests
import json
from time import sleep
wait_time = 0.3 # (sec)
base_url = 'https://maps.googleapis.com/maps/api/geocode/json?language=ja&address={}&key=***'
headers = {'content-type': 'application/json'}
queries = []
with open('C:\work\test.txt', 'r') as f:
queries = f.readlines()
for query in queries:
query = query.strip()
url = base_url.format(query)
r = requests.get(url, headers=headers)
data = r.json()
if 'results' in data and len(data['results']) > 0 and 'formatted_address' in data['results'][0]:
with open('C:\work\test_out.txt', 'a') as out:
out.write('{},{},{},{}\n'.format(
query,
data['results'][0]['formatted_address'].encode('utf-8'),
data['results'][0]['geometry']['location']['lat'],
data['results'][0]['geometry']['location']['lng']
))