回应我的other question现在需要找到一种方法将json压缩到一行:例如
{"node0":{
"node1":{
"attr0":"foo",
"attr1":"foo bar",
"attr2":"value with long spaces"
}
}}
想要紧缩到一条线:
{"node0":{"node1":{"attr0":"foo","attr1":"foo bar","attr2":"value with long spaces"}}}
删除无效的空格并保留值内的空格。有没有一个库在python中执行此操作?
修改的 感谢drdaeman和Eli Courtwright的快速反应!
答案 0 :(得分:17)
http://docs.python.org/library/json.html
>>> import json
>>> json.dumps(json.loads("""
... {"node0":{
... "node1":{
... "attr0":"foo",
... "attr1":"foo bar",
... "attr2":"value with long spaces"
... }
... }}
... """))
'{"node0": {"node1": {"attr2": "value with long spaces", "attr0": "foo", "attr1": "foo bar"}}}'
答案 1 :(得分:1)
在Python 2.6中:
import json
print json.loads( json_string )
基本上,当你使用json模块解析json时,你会得到一个Python dict。如果您只是打印一个字典和/或将其转换为字符串,它们都将在一行上。当然,在某些情况下,Python dict将与json编码的字符串略有不同(例如booleans和nulls),所以如果这很重要,那么你可以说
import json
print json.dumps( json.loads(json_string) )
如果您没有Python 2.6,那么您可以使用the simplejson module。在这种情况下,你只需说
import simplejson
print simplejson.loads( json_string )