トレースバック (最後の最後の呼び出し):
ファイル "C:\Users\Penguin\workspace\geocode-nojansdatabase\src\geocode.py"、15 行目
、(lat, lng) = g.geocode(a)
ファイル " C:\Python27\lib\site-packages\geopy-0.94.2-py2.7.egg\geopy\geocoders\google.py"、81 行目、ジオコードで
self.geocode_url(url, exact_one)
ファイル "C: \Python27\lib\site-packages\geopy-0.94.2-py2.7.egg\geopy\geocoders\google.py"、88 行目、geocode_url で
ディスパッチ (ページ、正確に 1 つ) を返す
ファイル "C:\Python27\lib \site-packages\geopy-0.94.2-py2.7.egg\geopy\geocoders\google.py"、111 行目、parse_xml
"(Found %d.)" % len(places))
ValueError: しませんでした目印を 1 つだけ見つけてください。(3つ見つかりました。)
geopy が気に入らないアドレスに遭遇すると、アプリケーションが終了します。私が疑問に思っているのは、Python で例外をキャプチャして、プログラムが次のエントリに移動できるようにする方法です。ソースコードは以下です。
import csv
from geopy import geocoders
import time
g = geocoders.Google()
spamReader = csv.reader(open('locations.csv', 'rb'), delimiter='\t', quotechar='|')
f = open("output.txt",'w')
for row in spamReader:
a = ', '.join(row)
#exactly_one = False
time.sleep(1)
place, (lat, lng) = g.geocode(a)
b = "\"" + str(place) + "\"" + "," + str(lat) + "," + str(lng) + "\n"
print b
f.write(b)