2011-02-15 43 views
3

给出一个Unicode对象:统一到Python对象转换

u'[obj1,obj2,ob3]' 

你如何将其转换为对象的普通列表?

+2

是你希望什么样的对象,使列表中包含哪些内容? – 2011-02-15 08:40:57

+0

我subclassed django.forms.widget类..和value_from_datadict方法返回一个对象的列表作为unicode字符串..我想能够得到的对象列表不是unicode字符串.. – mossplix 2011-02-15 08:54:28

+1

怀疑这个问题是基于在一个误解,即从在终端输出结果... – 2011-02-15 10:30:41

回答

7
import ast 
s = u'[obj1,obj2,ob3]' 
n = ast.literal_eval(s) 
n 
[obj1, obj2, ob3] 
0

你发布的是一个unicode字符串。 要编码它,例如作为UTF-8使用yourutf8str = yourunicodestr.encode('utf-8')

3

您的意思是?将unicode字符串转换为字符串列表。顺便说一句,你需要知道在处理unicode时的编码。在这里,我已经使用UTF-8

>>> s = u'[obj1,obj2,ob3]' 
>>> n = [e.encode('utf-8') for e in s.strip('[]').split(',')] 
>>> n 
['obj1', 'obj2', 'ob3'] 
0

当Unicode数据并没有显示unicode的ü...

在使用openpyxl Excel表格导出数据,我的unicode也看不见。使用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'>