将字典的字符串表示形式转换为字典
在Python中,通常需要转换字典的字符串表示形式,例如下面的字符串表示形式, 代入其对应的字典:
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
避免使用 'eval'
虽然可以使用 'eval' 函数来计算字符串表达式,但不鼓励使用此方法,因为安全问题。 'eval' 执行任意代码,增加了漏洞的风险。
更安全的替代方案
要安全地转换字符串字典,请考虑使用内置的 'ast.literal_eval ' 功能。 'ast.literal_eval' 专门设计用于计算文本 Python 表达式,例如字典、元组、列表等的字符串表示形式。
示例
import ast ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
输出:
{'muffin': 'lolz', 'foo': 'kitty'}
的好处'ast.literal_eval'
与 'eval' 相比, 'ast.literal_eval' 提供了一种更安全、更受控制的方法来将字典或其他文字的字符串表示形式转换为 Python 对象。
以上是如何安全地将字典的字符串表示形式转换为 Python 中的字典?的详细内容。更多信息请关注PHP中文网其他相关文章!