如何在Python中将字典的字符串表示形式转换为字典?

字典对象很容易通过str()函数转换为字符串。

>>> D1={'1':1, '2':2, '3':3}
>>> D1
{'1': 1, '2': 2, '3': 3}
>>> str(D1)
"{'1': 1, '2': 2, '3': 3}"

要将字符串转换为字典,我们必须确保该字符串包含字典的有效表示形式。这可以通过eval()方法来完成。

>>> D1={'1':1, '2':2, '3':3}
>>> s=str(D1)
>>> s
"{'1': 1, '2': 2, '3': 3}"
>>> D2=eval(s)
>>> D2
{'1': 1, '2': 2, '3': 3}

Python的抽象语法树(ast)模块具有literal_eval()方法,该方法可以安全地评估有效的Python文字结构。

>>> D1={'1':1, '2':2, '3':3}
>>> s=str(D1)
>>> import ast
>>> D2=ast.literal_eval(s)
>>> D2
{'1': 1, '2': 2, '3': 3}