python - GAE Python - CSV Writer 给出 ascii 编解码器错误

标签 python google-app-engine csv codec

我有一个 Google App Engine 应用程序,它以多种语言存储数据,例如:德语和俄语。为此,我需要将字符串存储为 UTF-8,幸运的是,由于我使用 webapp2.request 处理程序,这是自动完成的。作为一名初级程序员,这使我能够避免编码和解码数据的复杂性。

但是现在我正在尝试将内容写入 CSV 文件,似乎对于 csv.writer 命令,编码无论如何都是必要的。现在我不确定是否应该解码或编码,但目前我得到的错误如下:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)

我使用的代码是:

import csv, webapp2, codecs

class AdminShopExport(webapp2.RequestHandler):
  def get(self):
    shops = Shop.all()
    shops.order('name')
    self.response.headers['Content-Type'] = 'application/csv'
    writer = csv.writer(self.response.out)
    writer.writerow(["id", "name", "domain", "category"])
    for shop in shops:
      writer.writerow([shop.keyname, shop.name, shop.url, shop.category])

关于内容,当前错误来自俄语给出的类别。然而,如上所述,这些字段中的任何一个都可以包含 UTF-8 字符。处理这个问题的最佳方法是什么?感谢您的帮助!

最佳答案

python 2x csv 不支持 unicode

试试这个

https://github.com/jdunck/python-unicodecsv

关于python - GAE Python - CSV Writer 给出 ascii 编解码器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15374009/

相关文章:

java - 通过更改 session 中的 PATH 将 Python 指向本地保存的 64 位 Java?

python - 在包含换行符的文件上使用 gzip 时出错

python - 无法运行 python 谷歌应用程序引擎项目

python - 在Pandas to_csv函数中,我需要将标题的分隔符修改为 ":"

python - 将 nd 数组转换为键、值字典

python - 从时间序列生成日期特征

excel - 在 CSV 文件中读取问题。 + 和 - 被读取为 0 的字符

perl - 将特定列转换为 CSV 文件中的小写

macos - 安装 Google Go 和 App Engine SDK 的正确方法是什么?

java - Appengine 数据存储区父级或索引