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

时间:2021-04-29 05:46:34

标签: python list

我有一个以字符串格式存储的嵌套列表,我想将其转换为 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 个答案:

答案 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)
相关问题