gpt4 book ai didi

python - Unicode编码错误: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:21 25 4
gpt4 key购买 nike

我正在尝试制作一个脚本。该脚本将搜索 .xls 文件并打印出条件成立的行。对于那件事我没有任何疑问。我确实这样做,但是当我需要将该行写入文件时遇到问题。

这是代码:

import xlrd    
import string
dataFile = open('Napadaci.txt', 'w')
workbook = xlrd.open_workbook('TBS_58_pos10_stars75_2014-02-09.xls')
worksheet = workbook.sheet_by_name('Sheet1')
num_rows = worksheet.nrows - 1
num_cells = worksheet.ncols - 1
curr_row = -1
b = 0
new_cell_value = ""
while curr_row < num_rows:
curr_row += 1
row = worksheet.row(curr_row)
curr_cell = 4
cell_value = worksheet.cell_value(curr_row, curr_cell)
if cell_value < 17.0:
curr_cell = 5
cell_value = worksheet.cell_value(curr_row, curr_cell)
if cell_value == 95.0:
curr_cell = 9
cell_value = worksheet.cell_value(curr_row, curr_cell)
if cell_value == "Tehnical" or cell_value == "Quick" or cell_value == "Head" or cell_value == "Unpredictable":
b += 1
dataFile.write(str(b)+'\n')
curr_cell = -1
while (curr_cell + 1) < num_cells:
curr_cell += 1
cell_value = worksheet.cell_value(curr_row, curr_cell)
new_cell_value=cell_value
if isinstance(cell_value, str):
new_cell_value = cell_value.encode('ascii','ignore')
dataFile.write(str(new_cell_value)+'\n')
dataFile.write(str('Trazim sljedeceg')+'\n'+'\n'+'\n'+'\n')

因此,需要一堆 if 来确保该行完全正确。但是,当我尝试运行它时,出现错误:UnicodeEncodeError:“ascii”编解码器无法对位置 10-11 中的字符进行编码:序数不在范围内(128)我用谷歌搜索发现这是因为在 .xls 文件中我有这样的字符:Å¡¡等。我将一个一个地遍历所有单元格,我认为我只需要在有字符串的单元格中解决这个问题,因此是最后一个 if。我非常确定

    new_cell_value = cell_value.encode('ascii','ignore')

line 应该修复它,但它没有发生。请帮忙,我不知道我做错了什么。如果您需要更多额外信息。我有 Python 2.7.3 并且正在运行 ubuntu 12.04

编辑:哦,这些角色对我来说并不是很重要,所以如果需要的话我可以失去它们。

最佳答案

这里的问题是 if 语句。

>>> uni = u"\u04533testing"
>>> print uni
ѓ3testing
>>> isinstance(uni, str)
False
>>> type(uni)
<type 'unicode'>

因为这个对象不是一个字符串,它是一个unicode字符串。因此该编码永远不会被击中。你想要

if isinstance(cell_value,unicode):

关于python - Unicode编码错误: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21687615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com