在python中将字符串转换为列表

时间:2013-02-18 14:02:34

标签: python

我需要将字符串转换为python中的列表, 字符串格式如下,

'[{"name":"Tom","adress":"adress1"},{"name":"Mari","adress":"adress2"}]'

我需要将此字符串转换为python list 数据类型,并希望通过迭代生成的列表来获取字典。

我已经尝试过json库而且没有运气。 >更正( json.loads正在运行。)

请告诉我正确的方法吗?

2 个答案:

答案 0 :(得分:5)

你可以ast.literal_eval没有任何问题。

>>> s = '[{"name":"Tom","adress":"adress1"},{"name":"Mari","adress":"adress2"}]'
>>> import ast
>>> ast.literal_eval(s)
[{'adress': 'adress1', 'name': 'Tom'}, {'adress': 'adress2', 'name': 'Mari'}]

但是json.loads似乎没有任何问题......

>>> import json
>>> json.loads(s)
[{u'adress': u'adress1', u'name': u'Tom'}, {u'adress': u'adress2', u'name': u'Mari'}]
>>> 

答案 1 :(得分:3)

正如在几条评论中所指出的,eval内置函数能够解析这些字符串,但不安全!因此,ast.literal_eval方法应该是首选。