类似JSON的字符串,使用unicode转换为有效的JSON

2024-09-30 14:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个类似于JSON的字符串,我正在尝试使用python将其转换为有效的JSON。 看起来像这个例子,但实际数据很长:

{u'key':[{
       u'key':u'object',
       u'something':u'd\xfcabc',
       u'more':u'\u2023more',
       u'boolean':True
    }]
}

所以也有很多特殊字符,以及“错误”的布尔值,应该只是小写字母。 我不需要从中提取任何数据,我也不需要从中提取任何影响。 我试图替换特殊字符和所有内容,并强制它成为有效的JSON,但它一点也不优雅,我很容易忘记替换一种特殊字符。你知道吗


Tags: 数据key字符串jsontrueobjectmore错误
2条回答

您可以使用literal_eval模块中的ast来实现此目的。你知道吗

ast.literal_eval(yourString)

然后可以将这个对象转换回JSON。你知道吗

JSON规范只允许javascript数据(truefalse表示布尔,nullundefined表示None属性等)
这个问题的字符串,是一个python对象,正如@florian dreschsler所说的,您必须使用来自ast模块的literal_eval

>>> 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'}]}

相关问题 更多 >