【问题标题】:Store accents into csv file using python [duplicate]使用python将口音存储到csv文件中[重复]
【发布时间】:2018-02-24 15:45:12
【问题描述】:

我有以下代码:

# -*- 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 文件后得到的是:

我一直在尝试很多事情,并阅读了不同的相关 stackoverflow 帖子,但什么都没有……谁能帮我解决这个问题?!

提前致谢!

编辑:然后我想将其转换为 Excel 文件。如果我用另一个应用程序打开 csv,列会以我不想要的另一种方式分隔。当我用 excel 打开 csv 文件时,上面的代码给了我正确的分隔

【问题讨论】:

  • 用文本编辑器打开 csv 会看到什么?
  • 您是否尝试过使用ANSI 编码而不是UTF-8?在这里快速阅读让我得到这个答案:accompa.com/kb/answer.html?answer_id=264
  • 使用string.encode('ascii','ignore')
  • 例如,如果我在“Atom”中打开它,重音就在那里,非常好@roganjosh
  • @Jaxi 是什么意思?我读了你的链接,我在 Mac 上。如果我用 Numbers 应用程序打开它,所有列都是无序的,并且以我不想要的方式:(

标签: python csv encoding utf-8 decoding


【解决方案1】:

重音存储在 csv 文件中。没有怀疑。 这些位对应于 utf8 编码的文本。 您需要告诉您 csv 阅读器(看起来像 MS Excel)它是 utf8。

以 libreoffice 为例:

【讨论】:

  • 只有一个问题,如果我这样做,最后一列(地址)会被分开,我的意思是:这个地址“Calle Hernán Cortés, 16, 28004 Madrid, Spain”而不是在一个单一的矩形,被分割成多个矩形...
  • 忘记我刚才说的@mquantin!只需选择“分号”分隔符选项,我就能得到相同的结果!非常感谢^^
猜你喜欢
  • 1970-01-01
  • 2021-09-15
  • 2021-05-17
  • 2021-11-22
  • 2019-12-01
  • 1970-01-01
  • 2021-05-10
  • 2019-12-25
  • 1970-01-01
相关资源
最近更新 更多