如何将字符串转换为字典列表

时间:2021-04-26 02:44:33

标签: python

假设我们有这样的字符串:

string = "[{'Chr': 'chrX', 'Start': 107844640, 'End': 107844640}, {'Chr': 'chrY', 'Start': 107844641, 'End': 107844641}]"

目标是将该字符串转换为字典列表。

目前我只设法将字符串转换为列表:

str1 = string.replace(']','').replace('[','')
l = str1.replace('"','').split(",")

不幸的是,这会添加不需要的字符,例如 '""',我怎样才能摆脱不需要的字符并获得所需的结果?

3 个答案:

答案 0 :(得分:2)

import ast

string = "[{'Chr': 'chrX', 'Start': 107844640, 'End': 107844640}, {'Chr': 'chrY', 'Start': 107844641, 'End': 107844641}]"

# ast.literal_eval(string)

for i in ast.literal_eval(string):
    print(i)

答案 1 :(得分:1)

我的直接解决方案,正如 Mark Tolonen 所说,ast.literal_eval(string) 是最内置的 Pythonic 方式,无需使用 exec()

答案 2 :(得分:1)

好的,我也会跳上偷车,因为 OP 似乎没有完全得到“答案”。

所以,你基本上已经有了一个字典列表,只是在一个字符串类型的变量中定义。 使用 ast 从字符串和字典列表中获取文字值。

import ast

dict_string = "[{'Chr': 'chrX', 'Start': 107844640, 'End': 107844640}, {'Chr': 'chrY', 'Start': 107844641, 'End': 107844641}]"
dict_list = ast.literal_eval(dict_string)

# dict_list is now a list of dictionaries

相关问题