如何改变类似JSON的'字符串转换为真正的JSON数据

时间:2017-04-27 07:08:51

标签: python json string

我现在有一个名为str1的字符串,如下所示:

{u'price': 542.23, u'name': u'ACME', u'shares': 100}

我希望将其转换为真正的JSON数据。

使用

的方式
data = json.loads(str1)

不起作用。你有什么好主意吗? (使用Python)

1 个答案:

答案 0 :(得分:3)

import ast

s = "{u'price': 542.23, u'name': u'ACME', u'shares': 100}"
d = ast.literal_eval(s)

> type(d)
<type 'dict'>

> d['price']
542.23

顺便说一下,eval并不安全。

如果输入不是有效的Python数据类型,则ast.literal_eval会引发异常,因此如果不是,则不会执行代码。

每当需要eval时使用ast.literal_eval。如果您将Python表达式作为要评估的输入,则不应该(拥有它们)。