python - 将列表的字符串表示形式转换为字典 Python

标签 python string list dictionary

如何将 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/

相关文章:

c - 乱码输出

C:检查字符串是否是回文

c# - LINQ 按数字序列排序

python - 一个元组的列表,其中包含多个项目

python - 通过字符串设置属性

python - 用于字符串重复搜索的python代码的优化

python - 用于科学绘图的 IronPython 库

python - 选择排序比冒泡排序慢?

sql - 替换表列中的部分字符串

Python 随机样本,有异常