如何在python中将以下奇数字符串转换为json?

use*_*884 0 python json types

如何在python中将此字符串转换为json?

>>> data = '[for: css=a[title="See LLCAutoSept files"]]'
>>> json.dumps(data)
'"[for: css=a[title=\\"See LLCAutoSept files\\"]]"'
Run Code Online (Sandbox Code Playgroud)

我尝试过使用json.dumps(),但输出json无法在jsonlint.com上验证

Mar*_*ers 5

您正在查看Python字符串表示.它是有效的Python代码,包含有效的JSON.

打印值:

>>> imp
>>> data = '[for: css=a[title="See LLCAutoSept files"]]'
>>> print json.dumps(data)
"[for: css=a[title=\"See LLCAutoSept files\"]]"
Run Code Online (Sandbox Code Playgroud)

JSONlint使用较旧的,更严格的RFC 4627,它要求顶级是一个数组或对象,因此它不会验证JSON字符串.

但是,Python json.dumps()生成有效的RFC 7159输出.

如果您的应用程序需要JSONlint合规性,那么无论如何都要添加一个列表或字典:

>>> print json.dumps([data])
["[for: css=a[title=\"See LLCAutoSept files\"]]"]
>>> print json.dumps({'data': data})
{"data": "[for: css=a[title=\"See LLCAutoSept files\"]]"}
Run Code Online (Sandbox Code Playgroud)

JSONlint.com将其中任何一个验证为有效.

有一段时间,对此有一些混淆,RFC 4627,ECMA-262和ECMA-404以及实际实施不同意所允许的内容; 至少RFC 7159现在同意ECMA-404.另请参阅什么是最小有效JSON?