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
相关产品推荐
相关产品推荐

