如何向JSON文件的skills字典中添加新技能?
如何给JSON中的skills字典添加新技能
你不需要把字典转成列表再操作——字典本身支持直接添加键值对,之前的绕路操作完全没必要,而且很容易出错。下面是正确的操作方法(以Python为例,这是处理JSON最常用的工具):
读取JSON文件
先把文件里的内容加载成Python字典:import json with open('data.json', 'r') as file: user_data = json.load(file)添加新技能到skills字典
直接通过键赋值或者update()方法添加,两种方式都可以:- 直接赋值(更直观):
# 定义新技能的属性 user_data['skills']['Cook'] = { "description": "Increase by using `/cook` -提升烹饪食物的品质,获得更高收益", "level": 1, "per": 0 } - 使用
update()方法(适合批量添加多个技能):new_skills = { "Cook": { "description": "Increase by using `/cook` -提升烹饪食物的品质,获得更高收益", "level": 1, "per": 0 }, "Hunter": { "description": "Increase by using `/hunt` -提高狩猎稀有猎物的概率", "level": 1, "per": 0 } } user_data['skills'].update(new_skills)
- 直接赋值(更直观):
把修改后的内容写回JSON文件
最后要把更新后的字典重新写入文件,否则修改不会生效:with open('data.json', 'w') as file: json.dump(user_data, file, indent=4) # indent=4保证JSON格式排版整齐
为什么你之前的方法无效?
把字典转成列表(比如list(user_data['skills'].items()))得到的是(技能名, 属性字典)的元组列表,即便你用append加了新元组再转回字典,也需要确保新元组的格式正确,而且最后必须把修改后的字典写回文件——你大概率是没完成写回这一步,或者转列表时的操作有误。但这种方法完全是舍近求远,直接操作字典才是最优解。
内容的提问来源于stack exchange,提问作者DisguisedTG
相关产品推荐
相关产品推荐

