使用 python 将口音存储到 csv 文件中
Store accents into csv file using 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 文件后得到的是:
我一直在尝试很多事情,并阅读了不同的相关 Whosebug 帖子,但什么都没有...有人可以帮助我吗?!
提前致谢!
编辑:然后我想将其转换为 Excel 文件。如果我用另一个应用程序打开 csv,列将以另一种我不想要的方式分开。当我用 excel
打开 csv 文件时,我上面的代码给出了正确的分隔
重音存储在 csv 文件中。毫无疑问。
这些位对应于具有 utf8 编码的文本。
需要告诉你csvreader(貌似MSExcel)是utf8。
以 libreoffice 为例:
我有如下一段代码:
# -*- 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 文件后得到的是:
我一直在尝试很多事情,并阅读了不同的相关 Whosebug 帖子,但什么都没有...有人可以帮助我吗?!
提前致谢!
编辑:然后我想将其转换为 Excel 文件。如果我用另一个应用程序打开 csv,列将以另一种我不想要的方式分开。当我用 excel
打开 csv 文件时,我上面的代码给出了正确的分隔重音存储在 csv 文件中。毫无疑问。 这些位对应于具有 utf8 编码的文本。 需要告诉你csvreader(貌似MSExcel)是utf8。
以 libreoffice 为例: