我想在我的json
文件中更新float
values
,结构如下:
{"Starbucks": {"Roads": 1.0, "Pyramid Song": 1.0, "Go It Alone": 1.0}}
因此,每当我生成一个已经存在的播放列表时,使用完全相同的项,我就将key
values
增加1.0
。
我用'append'
选项打开了一个文件
with open('pre_database/playlist.json', 'a') as f:
if os.path.exists('pre_database/playlist.json'):
#update json here
json.dump(playlist,f)
但是这个'a'
方法会在json
后面附加另一个dictionary
,并且在以后会产生parsing
问题。
同样,如果我使用'w'
方法,它将完全覆盖文件。
更新值的最佳解决方案是什么?
您可以在
r+
模式下打开该文件(同时打开该文件进行读写),读取JSON内容,将seek返回到文件的开头,将其截断,然后将修改后的字典重写回文件:Appending
意味着文件变长了,这既不是JSON的工作原理,也不是JSON的工作原理。如果要更新某些值,需要加载json文件,请更新值并将其转储回:
另外,您应该在打开文件之前检查文件是否存在,而不是在文件已经打开时:
尽管我猜python的方法是尝试一下,如果文件没有如预期的那样存在,就捕获
IOError
。根据你继续的方式,最好这样做:
罗宾
相关问题 更多 >
编程相关推荐