如何在python中将此字符串转换为json?
>>> data = '[for: css=a[title="See LLCAutoSept files"]]'
>>> json.dumps(data)
'"[for: css=a[title=\\"See LLCAutoSept files\\"]]"'
我尝试过使用json.dumps(),但输出json无法在jsonlint.com上验证
答案 0 :(得分:5)
您正在查看Python字符串表示。它是有效的Python代码,包含有效的JSON。
打印值:
>>> imp
>>> data = '[for: css=a[title="See LLCAutoSept files"]]'
>>> print json.dumps(data)
"[for: css=a[title=\"See LLCAutoSept files\"]]"
JSONlint正在使用旧,stricter 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\"]]"}
JSONlint.com将其中任何一个验证为有效。
有一段时间,对此有一些混淆,RFC 4627,ECMA-262和ECMA-404以及实际实施不同意所允许的内容;至少RFC 7159现在同意ECMA-404。另请参阅What is the minimum valid JSON?
答案 1 :(得分:1)
这是无效的json,因为它没有数组的键以及打开和关闭花括号或方括号,这就是为什么你无法在jsonlint.com上验证它
答案 2 :(得分:1)
这对我有用
data = {'string':'[for: css=a[title="See LLCAutoSept files"]]'}
print(json.dumps(data))