将字符串中的嵌套列表转换回嵌套列表

3
我有一个存储在字符串格式中的嵌套列表,我想将其转换为Python列表。
ll ='[["ABC",7,"A",9],["ABD",6,"B",8]]'
ll = list(ll)
print(ll)

我期望的输出结果

[["ABC",7,"A",9],["ABD",6,"B",8]] 

接收到的输出

['[', '[', '"', 'A', 'B', 'C', '"', ',', '7', ',', '"', 'A', '"', ',', '9', ']', ',', '[', '"', 'A', 'B', 'D', '"', ',', '6', ',', '"', 'B', '"', ',', '8', ']', ']'] 

请帮助

4个回答

6
你可以使用 ast.literal_eval 来安全地评估一个表达式节点或包含Python字面值或容器显示的字符串。

注意: 提供的字符串或节点仅可以由以下Python字面结构组成: 字符串、字节、数字、元组、列表、字典、集合、布尔类型和None

import ast

ll='[["ABC",7,"A",9],["ABD",6,"B",8]]'    
ll = ast.literal_eval(ll)

输出:

[['ABC', 7, 'A', 9], ['ABD', 6, 'B', 8]]

我将在4.0秒内占领第一个帖子。xd - Thavas Antonio

2
您可以使用 json
import json
ll='[["ABC",7,"A",9],["ABD",6,"B",8]]'
ll = json.loads(ll)
print(ll)

2
错误解释: 当你执行list(ll)时,Python会将给定的元组/集合/迭代器转换为列表。
在您的情况下,ll是一个字符串,它在内部是一个字符列表。因此,当您应用list(ll)时,Python会返回一个字符列表。 建议: 如@Zalak Bhalani所述,我建议使用json.loads
import json

ll ='[["ABC",7,"A",9],["ABD",6,"B",8]]'
ll = json.loads(ll)
print(ll)

1
你可以使用 ast.literal_eval。
import ast
x =ast.literal_eval('[["ABC",7,"A",9],["ABD",6,"B",8]]')
print(type(x))
print(x)

输出

<class 'list'>
[['ABC', 7, 'A', 9], ['ABD', 6, 'B', 8]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接