从 python2 脚本列表输出中删除 u' unicode

Remove u' unicode from python2 script list output

我有一个脚本可以扫描 excel sheet 并打印 A 列和一系列行,在 python 2 中输出一个列表,但具有预期的 unicode 字符,在参考了几个堆栈溢出帖子后,我似乎无法弄清楚如何摆脱它。

(6188, u'machine1')
(6189, u'machine2')
import openpyxl
wb = openpyxl.load_workbook('AnsibleReadinessReviewIP.xlsx')
sheet = wb['CIsIPaddresses']
sheet['A301']
sheet['A301'].value
A = sheet['A301']
A.value
sheet.cell(row=301, column=A)
# Get the row, column, and vlaue from the cell
'Row %s, Column %s is %s' % (A.row, A.column, A.value)
'Cell %s is %s' % (A.coordinate, A.value)
sheet['A301']
for i in range('301, 6197'):
    print(i, sheet.cell(row=i, column=2).value)

如何从列表输出中删除 unicode u'?提前致谢。

更改脚本中的以下行:

选项a:print(i, str(sheet.cell(row=i, column=2).value)) 选项 b:a.print(i, (sheet.cell(row=i, column=2).value).encode('ascii',

如果您看到 u,则您使用的是 Python 2。在 Python 2 中,print 是语句而不是函数,所以不要用括号调用它。使用 () 调用使其打印元组,元组的默认显示是在元组的项目上使用 repr()

Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> i=6188
>>> value = u'machine1'
>>> print(i,value)  # prints a tuple, which uses `repr()` for items.
(6188, u'machine1')
>>> print i,value   # prints values using `str()`, which won't display `u`.
6188 machine1      

Python 2 将只打印终端编码支持的 Unicode 字符,因此如果您的 Unicode 代码点超出终端编码默认值,您可能会得到可怕的 UnicodeEncodeError。切换到 Python 3 以获得更好的 Unicode 处理。 Python 2 已停产。