我有一个脚本,可以使用xlsxwriter将10个工作表保存到.xlsx。 当我尝试关闭工作表时,出现错误:
"UnicodeDecodeError: 'ascii' codec can't decode byte 0xea in position 28: ordinal not in range(128)".
当我将线条写入工作表时,我尝试捕获错误但没有任何成功。因此,我的工作表根本没有保存,我无法处理该行的例外情况。
这是我的代码 -
def xlsx_writer(name, data):
worksheet1 = workbook.add_worksheet(name)
line_number = 0
for line in data:
try:
worksheet1.write_row(line_number, 0, line)
except UnicodeDecodeError:
line = [x.decode('utf-8') for x in line]
worksheet1.write_row(line_number, 0, line)
如何在编写每一行时捕获错误,而不是在关闭工作簿时捕获错误?
答案 0 :(得分:0)
如何在编写每一行时捕获错误,而不是在关闭工作簿时捕获错误?
简而言之,你不能。将非ASCII或UTF-8编码数据写入目标文件并且在文件关闭之前不会发生错误。
如果您只是想避免此错误,那么只需解码()您的数据,然后再将其传递给write()
或write_row()
。