现在我有一个这样的字符串:
data = "[[1,'00007',0.19],[2,'00008',0.29],[3,'00009',0.49],[4,'00010',0.59]]"
print(type(data))
<class 'str'>
在python中这就像数据数组一样,但是它是一个字符串,现在我想将这个字符串转换为真正的数据数组<class 'list'>
,我应该怎么做
答案 0 :(得分:2)
你可以做到
eval(data)
解析其内容。
答案 1 :(得分:2)
使用ast.literal_eval:正如文档所述 -
安全地评估表达式节点或Unicode或Latin-1编码 包含Python文字或容器显示的字符串。
字符串或 提供的节点可能只包含以下Python文字 结构:字符串,数字,元组,列表,dicts,布尔值和 无。
>>> import ast
>>> data = "[[1,'00007',0.19],[2,'00008',0.29],[3,'00009',0.49],[4,'00010',0.59]]"
>>> ast.literal_eval(data)
[[1, '00007', 0.19], [2, '00008', 0.29], [3, '00009', 0.49], [4, '00010', 0.59]]
>>> print(type(ast.literal_eval(data)))
>>> <type 'list'>
除非确实需要,否则请避免使用eval
。详情at。
答案 2 :(得分:0)
继续您对数据的定义:
data_list = data.replace("[","").replace("]","").replace("'","").split(",")
new_list = [data_list[x:x+3] for x in range(0, len(data_list), 3)]
虽然结果中的所有内容现在都是字符串。