Преобразование 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'>
Другие вопросы по тегам