如何为JSON字典中的歌曲添加字段?新手遇AttributeError求助
给JSON歌曲列表添加字段的正确方法
错误原因拆解
- 你用
append()报错是因为字典没有这个方法,append()是给列表加元素用的,而每首歌是字典类型,不能这么用。 update()返回None是正常的,它是原地修改字典,不会返回新字典,不用把它的返回值存到变量里。
模拟你的JSON结构(示例)
假设你的songs.json内容是这样的:
[ {"title": "晴天", "artist": "周杰伦"}, {"title": "告白气球", "artist": "周杰伦"}, {"title": "稻香", "artist": "周杰伦"} ]
正确操作脚本
import json # 读取JSON文件 with open('songs.json', 'r', encoding='utf-8') as f: songs = json.load(f) # 这里得到的是一个列表,每个元素是单首歌的字典 # 遍历每首歌添加字段 for song in songs: # 方法1:直接给字典加键值对(最简单) song['genre'] = '流行' # 方法2:如果要一次性加多个字段,用update # song.update({ # 'genre': '流行', # 'release_year': 2003 # }) # 把修改后的内容写回JSON文件 with open('songs.json', 'w', encoding='utf-8') as f: json.dump(songs, f, ensure_ascii=False, indent=4)
重点提醒
- 确认你的JSON根结构是列表(用
[]包裹),这样json.load()才会返回列表,能直接遍历每首歌字典。 - 用
update()的时候直接调用就行,不用赋值,原字典已经被修改了。 - 写回文件时加
ensure_ascii=False能保留中文,indent=4让JSON格式更清晰。
内容的提问来源于stack exchange,提问作者Steven Diffey
相关产品推荐
相关产品推荐

