Unicode текст Excel python 2,7 - PullRequest
0 голосов
/ 06 февраля 2020

мой синтаксический анализ - русский текст excel, я использую xlrd

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from __future__ import print_function
import cx_Oracle
import csv
import xlrd
loc = ("parse.xls")
wb = xlrd.open_workbook(loc, encoding_override="cp1251") 
sheet = wb.sheet_by_index(0) 
sheet.cell_value(0, 0) 
print(sheet.row_values(4))

У меня проблема с русским текстом, мой результат:

[u '\ u041a \ u0430 \ u0440 - \ u0422 \ u0435 ', u' \ u0421 \ u0443 ', u'44061AKBAKAY', 1.0, u '']

excel: enter image description here

1 Ответ

1 голос
/ 06 февраля 2020

Python 2 отображает содержимое списка в виде отладочного представления, используя repr(). Распечатайте отдельные элементы для просмотра в печатном представлении, используя str(), но это может не получиться, если кодовая страница терминала и шрифт не поддерживают Cyrilli c:

>>> items = [u'\u041a\u0430\u0440-\u0422\u0435\u043b ', u'\u0421\u0443\u0449', u'44061AKBAKAY', 1.0, u'']
>>> items
[u'\u041a\u0430\u0440-\u0422\u0435\u043b ', u'\u0421\u0443\u0449', u'44061AKBAKAY', 1.0, u'']
>>> for item in items:
...  print(item)
...
Кар-Тел
Сущ
44061AKBAKAY
1.0

Переключитесь на Python 3, который лучше отображает строки Unicode и (по крайней мере, на Windows) не заботится о кодовой странице терминала. Шрифт все еще должен поддерживать Cyrilli c:

>>> items = [u'\u041a\u0430\u0440-\u0422\u0435\u043b ', u'\u0421\u0443\u0449', u'44061AKBAKAY', 1.0, u'']
>>> items
['Кар-Тел ', 'Сущ', '44061AKBAKAY', 1.0, '']
...