Юникод Python: как проверить строку Юникода - PullRequest
2 голосов
/ 30 ноября 2009

У меня есть такой скрипт:

#!/Python26/
# -*- coding: utf-8 -*-

import sys
import xlrd
import xlwt

argset = set(sys.argv[1:])

#----------- import ----------------
wb = xlrd.open_workbook("excelfile.xls")

#----------- script ----------------
#Get the first sheet either by name
sh = wb.sheet_by_name(u'Data')

hlo = []

for i in range(len(sh.col_values(8))):
   if sh.cell(i, 1).value in argset:
        if sh.cell(i, 8).value == '':
            continue
        hlo.append(sh.cell(i, 8).value)

excelfile.xls содержит строки Unicode, и я хочу проверить эти строки из командной строки:

C:\>python pythonscript.py päätyö
pythonscript.py:34: UnicodeWarning: Unicode equal comparison failed to convert both arguments to
icode - interpreting them as being unequal
  if sh.cell(i, 1).value in argset:

Как мне изменить мой код для Unicode?

Ответы [ 2 ]

4 голосов
/ 30 ноября 2009

Python имеет тип последовательности под названием unicode , который будет полезен здесь. Эти ссылки содержат дополнительную информацию, чтобы помочь вам в этом:

1 голос
/ 22 октября 2010

Попробуйте кодировать Юникод Excel в строку, используя cp1252 (Юникод Windows по умолчанию), а затем протестируйте. Я знаю, что многие люди не рекомендуют это, но это то, что иногда решает мои проблемы.

Псевдо => if sh.cell(i, 1).value.encode('cp1252') in argset: ...

Br.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...