我有一个格式如下的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