【问题标题】:Python: UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 0: ordinal not in range(128) -> ExcelPython:UnicodeEncodeError:'ascii'编解码器无法在位置 0 编码字符 u'\xfc':序数不在范围内(128)-> Excel
【发布时间】:2015-08-12 14:39:08
【问题描述】:

我现在正在尝试解决这个问题一段时间,但还没有看到任何不会让我感到困惑的解决方案。

我在 python 中得到了一个脚本,它应该将一个包含单词(德语名称)的数组写入一个 excel 文件。

cell = [name_1, name_2, name_3]   

import csv
 fl = open('company_data.csv', 'w')

 writer = csv.writer(fl)
 writer.writerow(['Name_1', 'Name_2', 'Name_3']) 
 for values in cell:
     writer.writerow(values)

 fl.close() 

出现的错误是 ...,第 135 行,在 writer.writerow(值) UnicodeEncodeError:“ascii”编解码器无法在位置 0 编码字符 u'\xfc':序数不在范围内(128) [在 1.2 秒内完成,退出代码为 1]

名称包括德语字符 ü,ä,ö 等。

我该如何解决这个问题?

【问题讨论】:

  • 快一年了,但您是否尝试过明确使用python3 而不是仅使用python?有同样的问题,有#!/usr/bin/env python shebang,#!/usr/bin/env python3 一切正常。如果您不在 *nix 上,请使用 python3 myfile.py 而不是 python myfile.py :)

标签: python encoding export-to-excel


【解决方案1】:

我认为您必须打开文件并指定要编写 unicode。 Aussming 你想要 utf-8:

import codecs
fl = codecs.open("company_data.csv", "w", "utf-8")

【讨论】:

  • 感谢您的回复。但是,我仍然收到消息:UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 0: ordinal not in range(128)。此信息是否有助于找到解决方案?如果有,解决方案的外观如何?
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 2017-03-29
  • 2018-07-10
  • 2012-04-14
  • 2016-09-05
相关资源
最近更新 更多