如何将其中的unicodestring转换为使用Python的Unicode

我正在使用python上的xlrd从Excel导入一堆数据

我得到的所有数据string是这样的:text:u'L \ xc9GENDE'

我操纵这些数据,然后尝试将它们放回到Excel中(使用xlsxwriter),当我这样做时,我得到了相同的文本块:u'L \ xc9GENDE'而不是LÉGENDE。

什么对我有用:

#!/usr/bin/env python # -*- coding: latin-1 -*- import xlsxwriter import sys workbook = xlsxwriter.Workbook('hello.xlsx') worksheet = workbook.add_worksheet() data = u'L\xc9GENDE' worksheet.write('A1',data) workbook.close() 

这将工作,我会得到在A1单元格LÉGENDE

但是如果我尝试操作一个string,我已经给了我'\ xc9GENDE',它只会在A1单元格中显示L \ xc9GENDE

—-编辑—-我用来从Excel中检索数据的代码

 from xlrd import open_workbook def grabexcelfile(): wb = open_workbook('leg.xls',encoding_override='latin-1') log = [] txt = '' for s in wb.sheets(): for row in range(s.nrows): values = [] for col in range(s.ncols): txt = str(s.cell(row,col)) txt.replace('-',' ',10) log.append(txt) return log x = grabexcelfile() print type(x[0]),x[0] 

打印给我:文本:u'L \ xc9GENDE'

尝试这个。

 import unicodedata data = u'L\xc9GENDE' unicodedata.normalize('NFKD',data).encode('ascii','ignore') 

你可以在这里参考更多 – > 在Python中将Unicodestring转换为string(包含额外的符号)

而不是试图操纵文本:u'L \ xc9GENDE',而是改变了var的typesexcel给了我这个:

 from xlrd import open_workbook def grabexcelfile(): wb = open_workbook('leg.xls',encoding_override='latin-1') log = [] txt = '' for s in wb.sheets(): for row in range(s.nrows): values = [] for col in range(s.ncols): #next line is changed txt = sheet.cell(row,col).value txt.replace('-',' ',10) log.append(txt) return log x = grabexcelfile() print type(x[0]),x[0]