python数据数组字符串转换为列表

时间:2015-11-27 08:54:42

标签: python list

现在我有一个这样的字符串:

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'>,我应该怎么做

3 个答案:

答案 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)]

虽然结果中的所有内容现在都是字符串。