我现在有一个名为str1的字符串,如下所示:
{u'price': 542.23, u'name': u'ACME', u'shares': 100}
我希望将其转换为真正的JSON数据。
使用
的方式data = json.loads(str1)
不起作用。你有什么好主意吗? (使用Python)
答案 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表达式作为要评估的输入,则不应该(拥有它们)。