You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 08:48:21