2013-03-12 72 views
1

我有一个Google App Engine应用程序,它以多种语言存储数据,例如,德语和俄语。为此,我需要将字符串存储为UTF-8,幸运的是,由于我使用了webapp2.request处理程序,所以它是自动完成的。作为一名开始的程序员,这让我避免了编码和解码数据的复杂性。GAE Python - CSV编写器提供ascii编解码器错误

但是现在我正在尝试将内容写入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字符。处理这个问题的最佳方法是什么?谢谢你的帮助!

回答

相关问题