Python 编辑JSON文件,同时保持格式正确(例如缩进)
我有一个JSON文件,格式如下,我想要一个方法来轻松编辑两个数据集中的数据 通过在.txt或.xls文件中插入表(每个表有2列),如何轻松替换这两个数据表[x,x] 我曾尝试在MATLAB中使用jsondecode和JSONECODE函数来实现这一点,但当我重写到.json文件时,所有标识和行更改都丢失了。如何(以及使用哪种软件)使其保持正确的格式Python 编辑JSON文件,同时保持格式正确(例如缩进),python,json,matlab,Python,Json,Matlab,我有一个JSON文件,格式如下,我想要一个方法来轻松编辑两个数据集中的数据 通过在.txt或.xls文件中插入表(每个表有2列),如何轻松替换这两个数据表[x,x] 我曾尝试在MATLAB中使用jsondecode和JSONECODE函数来实现这一点,但当我重写到.json文件时,所有标识和行更改都丢失了。如何(以及使用哪种软件)使其保持正确的格式 { “化合物”: [“frutafresca”], “财产1”: { “方案”:“Test1”, “标准值”:0.01, “数据”: [ [
{
“化合物”:
[“frutafresca”],
“财产1”:
{
“方案”:“Test1”,
“标准值”:0.01,
“数据”:
[
[ 353.15 , 108320 ],
[ 503.15 , 5120000 ],
[ 513.15 , 6071400 ]
]
},
“财产2”:
{
“方案”:“测试1”,
“标准值”:0.01,
“数据”:
[
[ 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,确保ascii=True,check=True,allow=True,cls=None,indent=None,separators=None,default=None,sort=key=False,**kw)
如果缩进是一个非负整数或字符串,那么JSON数组
元素和对象成员将使用该缩进进行漂亮的打印
水平。缩进级别为0、负数或“”将仅插入
新行。无(默认值)选择最紧凑的表示形式。
使用正整数缩进时,每个级别缩进的空格数为多少。如果
缩进是一个字符串(如“\t”),该字符串用于缩进每个字符串
水平
导入json
数据=无
使用open('data.json','r')作为_文件:
data=json.load(_文件)
断言数据不是无
##您对数据的更改是否记录
打开('data.json','w')作为_文件:
dump(数据,_文件,缩进=2)##缩进输出,每级2个空格
是否有理由不使用标准libjson
模块
json
模块
从:
json.dump(obj,fp,*,skipkeys=False,确保ascii=True,check=True,allow=True,cls=None,indent=None,separators=None,default=None,sort=key=False,**kw)
如果缩进是一个非负整数或字符串,那么JSON数组
元素和对象成员将使用该缩进进行漂亮的打印
水平。缩进级别为0、负数或“”将仅插入
新行。无(默认值)选择最紧凑的表示形式。
使用正整数缩进时,每个级别缩进的空格数为多少。如果
缩进是一个字符串(如“\t”),该字符串用于缩进每个字符串
水平
导入json
数据=无
使用open('data.json','r')作为_文件:
data=json.load(_文件)
断言数据不是无
##您对数据的更改是否记录
打开('data.json','w')作为_文件:
dump(数据,_文件,缩进=2)##缩进输出,每级2个空格
为什么需要保留格式?因为这样我会将文件存储起来存档,而且比所有文件都在同一行更容易阅读。但为什么所有文件都在同一行?你不想保留格式,你只想要可读的输出,不是吗?是的,但是我提到的MATLAB函数没有保留行的变化,所有内容都写在同一行上。是的,但是我提到的MATLAB函数没有保留行的变化,所有内容都写在同一行上。啊,不幸的是,我对MATLAB了解不多,所以我无法提供帮助…为什么需要保留格式?因为这样我会存储文件以存档,而且它们比所有内容都在同一行更容易阅读。但是为什么所有内容都在同一行?你不想保留格式,你只想要可读的输出,不是吗?是的,但是我提到的MATLAB函数没有保留行的变化,所有内容都写在同一行上。是的,但是我提到的MATLAB函数没有保留行的变化,所有内容都写在同一行上。啊,不幸的是,我对MATLAB了解不多,所以我不能帮上忙…我提到MATLAB的唯一原因是因为它是我最了解的。但由于我对学习python感兴趣,我将尝试一下!非常感谢。我提到MATLAB的唯一原因是因为它是我最了解的。但由于我对学习python感兴趣,我将尝试一下!非常感谢。