在Python中将字符串转换为字典或列表?

问题描述:

将此字符串转换为python中的列表或字典?在Python中将字符串转换为字典或列表?

['[', '{', 'u', "'", 'f', 'i', 'r', 's', 't', '_', 'n', 'a', 'm', 'e', "'", ':', ' ', 'u', "'", 'j', 'o', 'h', 'n', "'", ',', ' ', 'u', "'", 'l', 'a', 's', 't', '_', 'n', 'a', 'm', 'e', "'", ':', ' ', 'u', "'", 's', 'm', 'i', 't', 'h', "'", ',', ' ', 'u', "'", 'a', 'g', 'e', "'", ':', ' ', '2', '0', ',', ' ', 'u', "'", 'm', 'o', 'b', 'n', 'u', 'm', "'", ':', ' ', 'u', "'", '1', '2', '3', '4', '1', '9', '0', '8', "'", ',', ' ', 'u', "'", '_', 'i', 'd', "'", ':', ' ', '1', ',', ' ', 'u', "'", 'e', 'm', 'a', 'i', 'l', "'", ':', ' ', 'u', "'", 's', 'm', 'i', 't', 'h', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', "'", '}', ']'] 
+0

你是说'['[','{','u',“'”,...'是存储在Python字符串中的? – NPE 2013-03-14 08:31:46

+0

什么是期望的输出? – NPE 2013-03-14 08:32:03

+0

它应该是[{“first_name”:“john”,“last_name”:“smith”,“age”:20 ....}] – user27 2013-03-14 08:33:49

>>> a = ['[', '{', 'u', "'", 'f', 'i', 'r', 's', 't', '_', 'n', 'a', 'm', 'e', "'", ':', ' ', 'u', "'", 'j', 'o', 'h', 'n', "'", ',', ' ', 'u', "'", 'l', 'a', 's', 't', '_', 'n', 'a', 'm', 'e', "'", ':', ' ', 'u', "'", 's', 'm', 'i', 't', 'h', "'", ',', ' ', 'u', "'", 'a', 'g', 'e', "'", ':', ' ', '2', '0', ',', ' ', 'u', "'", 'm', 'o', 'b', 'n', 'u', 'm', "'", ':', ' ', 'u', "'", '1', '2', '3', '4', '1', '9', '0', '8', "'", ',', ' ', 'u', "'", '_', 'i', 'd', "'", ':', ' ', '1', ',', ' ', 'u', "'", 'e', 'm', 'a', 'i', 'l', "'", ':', ' ', 'u', "'", 's', 'm', 'i', 't', 'h', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', "'", '}', ']'] 

>>> ''.join(a) 
    "[{u'first_name': u'john', u'last_name': u'smith', u'age': 20, u'mobnum': u'12341908', u'_id': 1, u'email': u'[email protected]'}]" 

>>> import ast 
>>> ast.literal_eval(''.join(a)) 
[{u'_id': 1, 
    u'age': 20, 
    u'email': u'[email protected]', 
    u'first_name': u'john', 
    u'last_name': u'smith', 
    u'mobnum': u'12341908'}] 

你是怎么弄到的?

+0

在搞清楚要问什么(+1) – NPE 2013-03-14 08:34:19

+0

谢谢Pavel – user27 2013-03-14 08:34:34

+0

@Janardhan:你拥有的是一个字符列表,而不是一个字符串。 – 2013-03-14 08:35:04

它本身就是一个列表,你在说要将它转换为列表! 尝试打印类型(a)通过指定给定代码为a !!那么你会得到

<type 'list'> 

作为输出!