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

Python:如何将单个字典转换为键值格式的多字典列表?

Python实现JSON字典转指定键值格式

直接用列表推导式就能快速实现需求,核心思路是固定提取type字段,再遍历剩余键值对生成目标结构:

方案1(修改原字典)

这种方式会移除原字典中的type键,适合不需要保留原数据的场景:

data = { 
  "type": "student",
  "age": "17",
  "sex": "male",
}

# 取出type值并从原字典删除该键
item_type = data.pop("type")
# 生成目标列表
result = [{"type": item_type, "key": k, "value": v} for k, v in data.items()]

print(result)
# 输出:[{'type': 'student', 'key': 'age', 'value': '17'}, {'type': 'student', 'key': 'sex', 'value': 'male'}]

方案2(保留原字典)

如果需要保留原始数据,遍历的时候跳过type键即可:

data = { 
  "type": "student",
  "age": "17",
  "sex": "male",
}

item_type = data["type"]
# 遍历所有键值对,排除type字段
result = [{"type": item_type, "key": k, "value": v} for k, v in data.items() if k != "type"]

print(result)

扩展场景

如果后续有多个固定字段(比如除了type还有school),可以先把固定字段提取出来,再批量生成结构:

data = { 
  "type": "student",
  "school": "No.1 High",
  "age": "17",
  "sex": "male",
}

# 提取固定字段
fixed_fields = {k: data[k] for k in ["type", "school"]}
# 生成目标列表
result = [
    {**fixed_fields, "key": k, "value": v} 
    for k, v in data.items() 
    if k not in fixed_fields
]

print(result)
# 输出:[{'type': 'student', 'school': 'No.1 High', 'key': 'age', 'value': '17'}, {'type': 'student', 'school': 'No.1 High', 'key': 'sex', 'value': 'male'}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:31:17