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

Python中如何将JSON列表转换为可按名称访问的字典

问题

我正在使用Python,拥有一个存储为列表的JSON块json_player,内容如下:

[
    {
        "id": "name",
        "value": "john"
    },
    {
        "id": "sport",
        "value": "baseball"
    },
    {
        "id": "age",
        "value": "20"
    }
]

该JSON块由以下代码生成:

json_object = json.loads(df['customFields'])
json_player = json_object['player']

目前我可以通过json_player[0]['value']获取对应的值(如返回john),但希望能按名称而非索引访问键值对,以此避免JSON顺序变化带来的影响,例如通过类似player_dict['name']的方式直接得到john,请问该如何实现?


解决方案

方法一:字典推导式直接转换

最直接的方式是用字典推导式把原列表转换成以id为键、value为值的字典,这样就能通过名称直接访问:

# 将列表转换为字典
player_dict = {item['id']: item['value'] for item in json_player}

# 按名称访问示例
print(player_dict['name'])  # 输出: john
print(player_dict['sport']) # 输出: baseball
print(player_dict['age'])   # 输出: 20

方法二:封装成辅助函数(适合频繁转换场景)

如果需要多次处理这类结构的列表,可以封装一个简单函数,方便复用:

def list_to_id_dict(data_list):
    return {item['id']: item['value'] for item in data_list}

# 使用函数转换
player_dict = list_to_id_dict(json_player)

注意事项

  • 若原列表中存在重复的id,后面的条目会覆盖前面的,因此要确保id的唯一性
  • 转换后的字典是独立于原列表的静态结构,如果原json_player后续有修改,需要重新执行转换操作

内容的提问来源于stack exchange,提问作者DJC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:30:05