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

1 投票
2 回答
592 浏览
提问于 2025-04-17 16:15

我需要把一个字符串转换成Python中的列表,字符串的格式如下:

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

我想把这个字符串转换成Python的列表数据类型,并希望通过遍历这个生成的列表来获取字典。

我试过使用json库,但没有成功。> 更正一下(json.loads是有效的。)

你能告诉我正确的方法吗?

2 个回答

3

正如几个评论中提到的,eval这个内置函数可以解析这样的字符串,但它并不安全!所以应该更倾向于使用ast.literal_eval这个方法。

6

你可以毫无问题地使用 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'}]
>>> 

撰写回答