如何选择性地美化python中json的某些元素

时间:2018-05-18 17:15:47

标签: python json

如何根据键选择性地在python中对json文件进行美化处理。例如,虽然我希望它通常被美化,但我希望在“DATE”键下的词典折叠成一行以节省空间。

{
 "String_entered": "string",
 "DATE": {
    "year":2013,
    "month":null,
    "day":null
   },
}

要:

{
 "String_entered": "string",
 "DATE": {"year":2013,"month":null,"day":null},
}

1 个答案:

答案 0 :(得分:0)

一个稍微狡猾的解决方案是弹出该密钥,然后将其追加:

def pretty_avoid(d, k, t):
    v = d.pop(k)
    print(json.dumps(d,indent=t)[:-1]+' '*t+'"'+k+'": '+json.dumps(v)+'\n}')

产生预期的输出(d作为dict):

>>> pretty_avoid(d, 'DATE', 4)
{
    "String_entered": "string"
    "DATE": {"year": 2013, "month": null, "day": null}
}

请注意,这确实会修改输入字典,这对您来说可能不是问题,但如果是,则可以使用copy.deepcopy