Преобразование Unicode в Python объект
Учитывая объект Unicode:
u'[obj1,obj2,ob3]'
Как вы конвертируете его в обычный список объектов?
4 ответа
Решение
import ast
s = u'[obj1,obj2,ob3]'
n = ast.literal_eval(s)
n
[obj1, obj2, ob3]
Вы имели в виду это? Преобразование строки Unicode в список строк. Кстати, вам нужно знать кодировку при работе с Unicode. Здесь я использовал UTF-8
>>> s = u'[obj1,obj2,ob3]'
>>> n = [e.encode('utf-8') for e in s.strip('[]').split(',')]
>>> n
['obj1', 'obj2', 'ob3']
То, что вы опубликовали, является строкой Unicode. Для его кодирования, например, как UTF-8 используйте yourutf8str = yourunicodestr.encode('utf-8')
Когда данные Unicode не показывают Unicode U...
При экспорте данных из таблицы Excel с использованием openpyxl мой юникод был невидим. использование print repr(s)
чтобы увидеть это
>>>print(data)
>>>print(type(data))
["Independent", "Primary/Secondary Combined", "Coed", "Anglican", "Boarding"]
<type 'unicode>
>>>print repr(data)
u'["Independent", "Primary/Secondary Combined", "Coed", "Anglican", "Boarding"]'
Исправление:
>>>import ast
>>>data = ast.literal_eval(entry)
>>>print(data)
>>>print(type(data))
["Independent", "Primary/Secondary Combined", "Coed", "Anglican", "Boarding"]
<type 'list'>