我的输入字符串如下所示
rule = "['xor',[{'asset':'pc','operator':'=','basis':true}]]"
预期输出
Output = ['xor',[{'asset':'pc','operator':'=','basis':true}]]
这也是遗留代码,我无法执行ast.literal_eval(rule)
,因为基础具有非字符串值true
,这将抛出错误“格式错误的字符串”
有什么建议可以做同样的事情吗?
我尝试使用 rule.strip('][').split(', ')
,但输出不是预期的格式:
["'and',[{'fact':'waived','operator':'=','basis':true}"]
最佳答案
如果您同意使用 eval,那么您可以在 eval 环境中定义 true
:
>>> rule = "['xor',[{'asset':'pc','operator':'=','basis':true}]]"
>>> print(eval(rule, {'true': True}))
['xor', [{'basis': True, 'asset': 'pc', 'operator': '='}]]
关于python - 字符串到列表的Python转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65210666/