python json转储而不会丢失格式

时间:2015-12-18 16:28:21

标签: python json formatting dump

例如,我有 config.json

{
  "param.a"     : 0.5,
  "param.basic" : ["x", "y"],

  "x.y.z"       : [1, 2, 3]
}

加载并保存到另一个文件:

import json
import collections
j = json.load(open('config.json'), object_pairs_hook=collections.OrderedDict)
json.dump(j, open('new.json', 'w'), indent=4)

查看 new.json

{
    "param.a": 0.5, 
    "param.basic": [
        "x", 
        "y"
    ],
    "x.y.z": [
        1, 
        2, 
        3
    ] 
}

config.json 中制作 new.json 格式(空格,制表符,换行符)是否是一种简单的方法?

2 个答案:

答案 0 :(得分:0)

也许你可以使用collections.OrderedDict来自定义你的json。

your_json = [OrderedDict(sorted(item.iteritems(), key=lambda (k, v): sort_order.index(k)))
                for item in allsites]

之后

json.dumps(your_json, indent=4, separators=(',', ': '))

答案 1 :(得分:0)

当你json.load()某事成为一个字典时。字典没有间距概念,因此您无法直接使用json.dump()来实现此目的。当然,您可以手动解析文件并计算每个键的空间量。然后,您可以逐行手动编写它。