如何将 list
的 str 表示形式(例如下面的字符串)转换为 dictionary
?
a = '[100:0.345,123:0.34,145:0.86]'
预期输出:
{100:0.345,123:0.34,145:0.86}
首先尝试使用 ast.literal_eval
将字符串转换为列表。但它显示错误为:invalid syntax
最佳答案
它显示为无效语法,因为它有错误的括号,所以你可以这样做
ast.literal_eval(a.replace("[","{").replace("]", "}"))
或者自己在字典理解中解析字符串
{x.split(":")[0]: x.split(":")[1] for x in a[1:-1].split(",")}
并且如果如前所述,您的字符串中的其他地方有 [
或 ]
,则以下内容可能更可靠
ast.literal_eval("{" + a[1:-1] +"}")
关于python - 将列表的字符串表示形式转换为字典 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52530055/