python3.3:将字符串转换为dict

时间:2013-12-03 17:53:38

标签: python

如何将此字符串从str转换为dict?

s = "{'a':3, 'b':'user's test'}" # as per comment
s = decode()
a = dict()
a = eval(s)

这不对!我无法使用eval()exec()对其进行转换。字符串中有'个字符。

1 个答案:

答案 0 :(得分:-1)

在这种情况下你不能,而且一般来说都不安全。 eval允许任意代码执行,并且容易出现奇怪的错误和安全问题。

我的建议是使用不同的序列化方法,例如json,它会根据需要自动转义字符串,或pickle,它将Python对象转换为二进制表示。

编辑: 此外,语法错误:字典键/值由:分隔,而不是=。所以它应该是{'a': 3, 'b': 'user\'s test'}'以反斜杠转义。