【问题标题】:GAE Python - CSV Writer gives ascii codec errorGAE Python - CSV Writer 给出 ascii 编解码器错误
【发布时间】:2013-03-12 23:07:14
【问题描述】:

我有一个以多种语言存储数据的 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 google-app-engine csv codec


    【解决方案1】:

    python 2x csv 不支持 unicode

    试试这个

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-28
      • 2016-01-01
      • 1970-01-01
      • 2015-02-03
      • 2019-09-01
      • 2018-02-02
      • 1970-01-01
      • 2017-03-31
      相关资源
      最近更新 更多