我有一个以字符串格式存储的嵌套列表,我想将其转换为 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', ']', ']']
请帮忙
答案 0 :(得分:4)
您可以使用 ast.literal_eval
来安全地计算包含 Python 文字或容器显示的表达式节点或字符串。
注意:所提供的字符串或节点只能由以下 Python 文字结构组成:字符串、字节、数字、元组、 列表、字典、集合、布尔值和无。
import ast
ll='[["ABC",7,"A",9],["ABD",6,"B",8]]'
ll = ast.literal_eval(ll)
输出:
[['ABC', 7, 'A', 9], ['ABD', 6, 'B', 8]]
答案 1 :(得分:2)
您可以使用 json
。
import json
ll='[["ABC",7,"A",9],["ABD",6,"B",8]]'
ll = json.loads(ll)
print(ll)
答案 2 :(得分: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]]
答案 3 :(得分:1)
错误说明:
当您执行 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)