如何在python 3*中将字符串转换为字典?
我想在不使用Python 3.5中的如何在python 3*中将字符串转换为字典?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我想在不使用Python 3.5中的eval()函数的情况下将以下字符串转换为字典 d=“{'Age':7,'Name':'Manni'}”; 有谁能告诉我比使用eval()函数更好的方法吗 我真正想要的是一个可以直接将字典转换成字符串的函数 literal\u eval,一个稍安全的eval版本(只评估文本,即字符串、列表等): json.loads但需要字符串使用双引号: import json python_dict = json.loads('{"a": 1}') 这个问题是关
eval()
函数的情况下将以下字符串转换为字典
d=“{'Age':7,'Name':'Manni'}”;
有谁能告诉我比使用eval()
函数更好的方法吗
我真正想要的是一个可以直接将字典转换成字符串的函数
literal\u eval
,一个稍安全的eval
版本(只评估文本,即字符串、列表等):
json.loads
但需要字符串使用双引号:
import json
python_dict = json.loads('{"a": 1}')
这个问题是关于Python3的,被标记为Python2的副本。我不认为这个问题应该被标记为副本。我对为什么
json.loads()
不适用于我感到疯狂。谢谢你的澄清。@DeepSpace你能告诉我为什么它更安全吗?我注意到它的CPU相当昂贵solution@Olfredos6这与CPU使用率无关eval
非常不安全,尤其是与不受控制的用户输入一起使用时。看看如果执行import操作系统会发生什么;eval(“os.remove('do\u not\u replace\u with\u a\u valid\u path'))
。另一方面,literal\u eval
只适用于文本literal\u eval(“os.remove('do\u not\u replace\u with\u a\u valid\u path')”)
outputsValueError:格式错误的节点或字符串
@DeepSpace OK。。。
import json
python_dict = json.loads('{"a": 1}')