【发布时间】:2016-11-14 21:46:14
【问题描述】:
我有一个使用 xlrd 模块在 python 中读取的 excel 文件。我从每一行中提取值,添加一些额外的数据并将其全部写入一个新的文本文件。但是,我遇到了包含分数为 3/4 的文本的单元格的问题。 Python将值读取为\xbe,每次遇到都会报这个错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xbe' in position 317: ordinal not in range(128)
我正在将每一行的值列表转换为字符串,尝试了以下操作但没有成功:
row_vals_str = [unicode(str(val), 'utf-8') for val in row_vals]
row_vals_str = [str(val).encode('utf-8') for val in row_vals]
row_vals_str = [str(val).decode() for val in row_vals]
每次我遇到第一次出现的 3/4 分数时,我都会遇到相同的错误。
如何将其转换为可以写入文本的内容?
我遇到了这个帖子,但没有找到答案:How to convert \xXY encoded characters to UTF-8 in Python?
【问题讨论】:
-
它可能用相当于 latin-1 的编码。但是,您仍然需要对角色做一些有用的事情。
-
如果遇到 Unicode 问题,最好使用 Python 3。
-
感谢您的回复,@NickT 不幸的是,我目前无法使用 python 2.7