我使用pygeocoder對地址列表進行地理編碼。這是我的代碼:csv模塊和pygeocoder錯誤
import csv
import pandas as pd
from pygeocoder import Geocoder
from pygeocoder import GeocoderError
df = pd.read_csv('C:\Users\L\Desktop\germanfdiaddress.csv', encoding="iso-8859-1")
address = df.Address
print address
add=[]
lat=[]
lng=[]
pcode=[]
for a in address:
try:
result = Geocoder.geocode(a)
lat.extend([result[0].coordinates[0]])
lng.extend([result[0].coordinates[1]])
pcode.extend([result[0].postal_code])
except GeocoderError:
continue
result = Geocoder.geocode(a)
lat.extend([result[0].coordinates[0]])
lng.extend([result[0].coordinates[1]])
pcode.extend([result[0].postal_code])
fields= 'add','lat', 'lng', 'pcode'
rows=zip(address,lat,lng,pcode)
with open('C:\Users\L\Desktop\myfile.csv', 'wb') as outfile:
w = csv.writer(outfile)
w.writerow(fields)
for i in rows:
w.writerow(i)
不過,我收到以下錯誤:
Traceback (most recent call last):
File "C:\Users\Jesus\Dropbox\coding\python\geocoder with uft-8, with complete output.py", line 42, in <module>
w.writerow(i)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 13: ordinal not in range(128)
上發生了什麼任何想法?我知道我的代碼除了寫入csv文件外都可以工作。
下面是CSV文件:https://www.dropbox.com/s/6yprg2u1ghuygye/germanfdiaddress.csv
您需要使用'codecs.open'並設置要寫入文件的編碼。 –