编辑 JSON 文件,同时保持其格式正确(例如缩进)



我有一个格式如下的JSON文件,我想要一种轻松编辑两个数据集中数据的方法。

通过在.txt或.xls文件中插入表(每列2列(,我如何轻松替换两个数据表[x,x]。

我尝试在 MATLAB 中使用 jsondecode 和 jsonencode 功能来做到这一点,但是当我重写为 .json 文件时,所有缩进和行更改都丢失了。我该如何(以及使用哪种软件(来保持其正确格式化?

{
"Compounds" :
[ "frutafresca" ],
"Property 1" : 
{
"Scheme" : "Test1"  ,
"StdValue"  : 0.01                 ,
"Data":
[
[     353.15  ,   108320   ],
[   503.15  ,   5120000  ],
[   513.15  ,   6071400  ]
]
},
"Property 2" : 
{
"Scheme" : "Test 1"  ,
"StdValue"  : 0.01                 ,
"Data":
[
[     273.15  ,   806.25 ],
[   283.15  ,   797.92 ],
[   293.15  ,   789.39 ],
[   453.15  ,   598.39 ],
[   463.15  ,   578.21 ],
[   473.15  ,   556.79 ]
]
}
}

有理由不使用标准的 libjson模块吗?

json模块

从文档中:

json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

如果缩进是非负整数或字符串,则 JSON 数组 元素和对象成员将使用该缩进进行漂亮打印 水平。缩进级别 0、负数或"将仅插入 换行符。"无"(缺省值(选择最紧凑的表示形式。使用正整数缩进可在每个级别缩进多个空格。如果 缩进是一个字符串(例如"\t"(,该字符串用于缩进每个 水平。

import json
data = None
with open('data.json', 'r') as _file:
data = json.load(_file)
assert data is not None

## do your changes to data dict

with open('data.json', 'w') as _file:
json.dump(data, _file, indent=2)    ## indent output with 2 spaces per level

相关内容

  • 没有找到相关文章

最新更新