Чтение значений юникода из excel в строку

У меня есть файл excel (xlsx). Значения читаются как значения Юникода.

wb = xlrd.open_workbook('file.xlsx')
sh = wb.sheet_by_index(0)
first_column = sh.col_values(0)
snd_column = sh.col_values(1)

Вывод в виде:

first_column=['', u'here', u'here i am', u'where', u'where i am']
snd_column=['', u'20 km', ' ', u'10 km', u'23 km']

Пустые ячейки читаются как обычные пустые строки.

Как получить вывод/прочитать файл непосредственно в виде строк. нравится

first_coulmn=['', 'here', 'here i am', 'where', 'where i am']
snd_coulmn=['', '20 km', ' ', '10 km', '23 km']

Я ищу вычислительно эффективный метод. Какие-нибудь советы?


person Zero    schedule 11.03.2013    source источник
comment
Зачем вам нужны байтовые строки?   -  person Martijn Pieters    schedule 12.03.2013
comment
@Martijn Pieters Это становится громоздким при выполнении операций со словарем со значениями Unicode.   -  person Zero    schedule 12.03.2013
comment
В Python 2, если все, что у вас есть, это данные ASCII, вы можете свободно сравнивать строки байтов и значения Unicode. Сохранение Unicode в виде ключей dict, а затем просмотр значений с помощью байтовой строки работает просто отлично.   -  person Martijn Pieters    schedule 12.03.2013
comment
Объяснить громоздко.   -  person John Machin    schedule 12.03.2013


Ответы (2)


Как насчет:

first_column = [str(v) for v in first_column]
person David Marx    schedule 11.03.2013
comment
Если есть большое количество столбцов, код будет медленным. Я подумал, что может быть какой-то способ вызвать что-то в xlrd.open_workbook('file.xlsx')? Непосредственно считывайте значения Unicode в строковую форму. - person Zero; 12.03.2013

Вы можете использовать функцию str() для преобразования юникода в строку. Это то, что вы спрашиваете?

person aestrivex    schedule 11.03.2013