【发布时间】:2014-03-26 04:52:21
【问题描述】:
我正在使用 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并设置您要写入的文件的编码。
标签: python csv encoding geocoding