如何将字符串转换为字典或列表?

用户名

我有如下字符串:

'[1, 2, 3]'

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

如何将它们转换为列表/字典?

有人提到ast.literal_evaleval可以解析转换为列表/字典的字符串。

ast.literal_eval之间有什么区别eval

威尔纳

ast.literal_eval解析“抽象语法树”。您几乎可以在其中使用json json.loads,但可以使用,但需要双引号而不是单引号才能使字典键有效。

import ast

result = ast.literal_eval("{'a': 1, 'b': 2}")
assert type(result) is dict

result = ast.literal_eval("[1, 2, 3]")
assert type(result) is list

另外,它没有的风险eval,因为它不涉及评估功能。eval("subprocess.call(['sudo', 'rm', '-rf', '/'])")可以删除您的根目录,但ast.literal_eval("subprocess.call(['sudo', 'rm', '-rf', '/'])")可以预期会失败,而您的文件系统将保持完整。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章