gpt4 book ai didi

python - 更新新字典键+增加旧字典值

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:35 25 4
gpt4 key购买 nike

我不断生成具有以下结构的播放列表:

playlist =  {u'user1': {u'Roads': 1.0, u'Pyramid Song': 1.0, u'Go It Alone': 1.0}}

然后我将其上传到目录。然后我检查文件是否已经上传过。

if os.path.exists('db/playlist.json'):
with open('playlist.json', 'r+') as f:
plist = json.load(f)
# increment track count
updateTrackCounts(db_1,value=1)
#update json here
f.seek(0)
f.truncate()
json.dump(plist, f)
print (plist)

我正在使用@Moses Koledoye 建议的这个工作函数updateTrackCounts(),它将轨道计数增加一。

def updateTrackCounts(d, value=0):
for i in d:
if isinstance(d[i], dict):
updateTrackCounts(d[i], value)
elif isinstance(d[i], float):
d[i] += value

updateTrackCounts(playlist, value=1)

但有时生成的新播放列表将具有新的,这些键在之前生成的字典中不存在。

如何调整上面的代码,以便它使增量函数应用于预先存在的文件上预先存在的,并更新plist 始终考虑使用 value = 1.0 的新 key

内部字典中使用一个新键所期望的结果:

playlist =  {u'user1': {u'Bittersweet Symphony':1.0, u'Roads': 2.0, u'Pyramid Song': 2.0, u'Go It Alone': 2.0}}

最佳答案

d.get(i,0)

如果键i存在,则返回该键的值,否则返回0。所以而不是

d[i] += value

你可以写

d[i] = d.get(i,0) + value

关于python - 更新新字典键+增加旧字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com