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字符。處理這個問題的最佳方法是什麼?謝謝你的幫助!
感謝Joran!易於實施和像魅力一樣工作。 – Vincent 2013-03-16 11:39:19