Python,将字典添加到JSON文件
我的JSON文件如下所示:Python,将字典添加到JSON文件,python,json,file,dictionary,append,Python,Json,File,Dictionary,Append,我的JSON文件如下所示: [ { "lon": 0.0, "altitude": 39000, }, { "lon": 0.0, "altitude": 41000, } ] 我想在本地保存此文件,并从源文件更新。 例如: 刷新的源文件包含新数据: [ { "lon": 19.84227, "altitude": 41000, }, { "lon": 20.068794, "a
[
{
"lon": 0.0,
"altitude": 39000,
},
{
"lon": 0.0,
"altitude": 41000,
}
]
我想在本地保存此文件,并从源文件更新。
例如:
刷新的源文件包含新数据:
[
{
"lon": 19.84227,
"altitude": 41000,
},
{
"lon": 20.068794,
"altitude": 38000,
}
]
import os, json
with open('data.json', 'a') as fp:
json.dump(j_data, fp, indent = 2)
fp.close()
f = open('data.json','r')
old_data = f.read()
f.close()
如何附加本地JSON文件,在文件末尾添加2个新字典,以实现以下目的:
[
{
values
},
{
values
}, <<< add " , " and new part of dictionaries
{
values
},
{
values
}
[
[
....
][ << [ and ] must be only at the beggining and end of file
....
]
[
{
价值观
},
{
价值观
},我找到了简单的解决方案:
用新数据追加JSON文件:
[
{
"lon": 19.84227,
"altitude": 41000,
},
{
"lon": 20.068794,
"altitude": 38000,
}
]
import os, json
with open('data.json', 'a') as fp:
json.dump(j_data, fp, indent = 2)
fp.close()
f = open('data.json','r')
old_data = f.read()
f.close()
搜索“][”并将其替换为“,”
另存为新文件
f = open('data_new.json','w')
f.write(new_data)
f.close()
删除旧文件并重命名新文件
os.remove('data.json')
os.rename('data_new.json', 'data.json')
您可以将json文件加载到两个python列表中,将它们连接起来,然后将它们转储回一个文件。当然,DICT中键的其他格式/顺序可能会丢失(但就json而言,这是等效的)…但是文件中的数据增长非常快,在一个文件中,我有10-12个值的ex.60字典。文件每秒刷新一次,几分钟后文件有15000行!您可能可以缓存JSON文件的内容,所以您不必每次都加载它…但您需要在每次更新时写入它,如果它是重要信息是,磁盘上的版本始终包含所有最新添加的内容。无需将磁盘上的文件保存在最新版本中,它可以一次保存,只需将以前未删除的数据保存。并且可以中断程序并在恢复后将新数据添加到文件中。