gpt4 book ai didi

python - 在python中将字符串转换为字典

转载 作者:太空宇宙 更新时间:2023-11-03 13:21:53 24 4
gpt4 key购买 nike

我有以下字符串:

str = "{application.root.category.id:2}"

我想将以上内容转换为 python 中的字典数据类型,如下所示:

dict = {application.root.category.id:2}

我尝试使用 eval(),这是我得到的错误:

AttributeError: java package 'application' has no attribute "root"

我当前的 python 是 <2.3,我无法将 python 更新到 >2.3。

有什么解决办法吗?

最佳答案

Python 字典的键不一定是字符串;因此,当您编写 {a: b} 时,如果它是一个字符串,您需要在 a 周围加上引号。 (例如,{1:2}整数 1 映射到整数 2。)

所以你不能只传递一些你必须的东西给eval。你需要自己解析它。 (或者,如果它碰巧更容易,更改生成它的任何内容以在键周围加上引号。)

具体如何解析它取决于您的字典的实际外观;例如,值本身可以是字典吗,或者它们总是数字,还是什么?这是一个简单但可能过于粗糙的方法:

contents = str[1:-1]        # strip off leading { and trailing }
items = contents.split(',') # each individual item looks like key:value
pairs = [item.split(':',1) for item in items] # ("key","value"), both strings
d = dict((k,eval(v)) for (k,v) in pairs) # evaluate values but not strings

关于python - 在python中将字符串转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com