gpt4 book ai didi

python - 如何将格式错误的字符串转换为字典?

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

我有一个字符串s(注意ab没有用引号括起来,所以不能直接评估为 dict):

s = '{a:1,b:2}'

我想将这个变量转换成这样的dict:

{'a':1,'b':2}

我该怎么做?

最佳答案

这将适用于您的示例:

import ast
def elem_splitter(s):
return s.split(':',1)

s = '{a:1,b:2}'
s_no_braces = s.strip()[1:-1] #s.translate(None,'{}') is more elegant, but can fail if you can have strings with '{' or '}' enclosed.
elements = (elem_splitter(ss) for ss in s_no_braces.split(','))
d = dict((k,ast.literal_eval(v)) for k,v in elements)

请注意,如果您的字符串格式如下,这将失败:

'{s:"foo,bar",ss:2}'  #comma in string is a problem for this algorithm

或:

'{s,ss:1,v:2}' 

但它会传递一个像这样的字符串:

'{s ss:1,v:2}' #{"s ss":1, "v":2}

您可能还想根据需要稍微修改 elem_splitter:

def elem_splitter(s):
k,v = s.split(':',1)
return k.strip(),v # maybe `v.strip() also?`

*其他人可能会使用更多的 ast 模块来编写一个更好的示例,但我不太了解它的内部结构,所以我怀疑我是否有时间做出这个回答。

关于python - 如何将格式错误的字符串转换为字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236708/

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