我有下面的代碼:商店點綴成csv文件使用python
# -*- coding: utf-8 -*-
import csv, geocoder
def extract_address(lat="", lng=""):
if lat and lng:
g = geocoder.google([lat, lng], method='reverse')
if g:
if g.street is not None:
postal = g.postal
housenumber = g.housenumber
if g.housenumber is None:
housenumber = ""
if g.postal is None:
postal = ""
address = str(g.street.encode("utf-8")) + ", " + str(housenumber.encode("utf-8")) + ", " + str(postal.encode("utf-8")) + " " + str(g.city.encode("utf-8")) + ", " + str(g.country_long.encode("utf-8"))
print type(address)
return address.decode('utf-8')
with open('my_prueba.csv', 'w') as t:
spamwriter = csv.writer(t, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
spamwriter.writerow(['st_y', 'st_x', 'Address'])
address = extract_address('some_lat', 'some_lng'))
print address
spamwriter.writerow([str(lat), str(lng), str(address.encode('utf-8'))])
這是輸出:
<type 'str'>
Calle Hernán Cortés, 16, 28004 Madrid, Spain
但我得到一次我打開CSV文件是這樣的:
我一直想很多事情,閱讀不同的相關stacko verflow的帖子,但沒有...任何人都可以給我這個手?!
在此先感謝!
編輯:我想然後將其轉換爲Excel文件。如果我用另一個應用程序打開csv,則列以另一種我不想要的方式分隔。我上面的代碼給我正確的分隔,當我用Excel打開csv文件時
你看到了什麼,如果你打開CSV用文本編輯器? – roganjosh
您是否嘗試過使用ANSI編碼而不是UTF-8?快速閱讀這裏讓我回答這個問題:http://www.accompa.com/kb/answer.html?answer_id=264 – Jaxi
如果我打開它,請使用'string.encode('ascii','ignore')' –