我得到一个类似于JSON的字符串,我正在尝试使用python将其转换为有效的JSON。 它看起来像这个例子,但实际数据变得很长:
{u'key':[{
u'key':u'object',
u'something':u'd\xfcabc',
u'more':u'\u2023more',
u'boolean':True
}]
}
所以还有很多特殊字符,以及“错误”布尔值,它应该只是小写字母。 我对我得到的数据没有任何影响,我只需要以某种方式解析它并从中提取一些东西。 我试图替换特殊字符和所有内容并强制它成为有效的JSON,但它并不优雅,我很容易忘记替换一种特殊字符。
答案 0 :(得分:3)
您可以使用literal_eval
模块中的ast
来实现此目的。
ast.literal_eval(yourString)
然后,您可以将此Object转换回JSON。
答案 1 :(得分:0)
JSON规范仅允许javascript数据(true
,false
用于布尔值,null
,undefined
用于None
属性等)
这个问题的字符串,它是一个python对象,所以@ florian-dreschsler说,你必须使用literal_eval
模块中的ast
>>> import ast
>>> json_string = """
... {u'key':[{
... u'key':u'object',
... u'something':u'd\xfcabc',
... u'more':u'\u2023more',
... u'boolean':True, #this property fails with json module
... u'null':None, #this property too
... }]
... }
... """
>>> ast.literal_eval(json_string)
{u'key': [{u'boolean': True, u'null': None, u'something': u'd\xfcabc', u'key': u'object', u'more': u'\u2023more'}]}