【发布时间】:2013-12-19 20:19:54
【问题描述】:
我正在使用谷歌应用引擎导入 csv 文件并将其插入数据库,但它给了我这个错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf0' in position 3: ordinal not in range(128)
我要导入的文件是 utf-8 python代码是utf-8
表格如下:
site = "order"
scripts = ""
content = """
<div class="row" style="margin-top: 10px;">
<div class="large-12 columns">
<form enctype="multipart/form-data" method="post" action="import">
<select name="db">
<option value="users">Users</option>
<option value="machines">Machines</option>
<option value="company">Company</option>
<option value="process">Order</option>
<option value="status">Status</option>
<option value="part">Part</option>
<option value="machineType">Machine Type</option>
<select>
<input name="file" type="file">
<input type="submit" value="submit" class="button">
</form>
</div>
</div>
"""
template_values = {
'site': site,
'scripts': scripts,
'content': content,
}
template = JINJA_ENVIRONMENT.get_template('main.html')
self.response.write(template.render(template_values))
这是帖子类:
reader = csv.reader(StringIO.StringIO(self.request.get('file').decode('utf-8'))),
database = self.request.get('db')
for row in reader:
for item in row:
tiles = item[0].replace('&comma', ',').split(';')
x = machineType(
Description = tiles[0],
ID = tiles[1],
Brand = tiles[2],
Type = tiles[3])
x.put()
self.response.write("Row imported [" + tiles[0] + ", " + tiles[1] + ", " + tiles[2] + ", " + tiles[3] + "]</br>" )
【问题讨论】:
标签: python google-app-engine csv utf-8