Python与JSON:如何将指定字段嵌套为子对象
解决方案:将扁平字段嵌套为层级结构
方法一:基于Pandas处理(推荐,适合已持有DataFrame的场景)
利用Pandas的apply方法生成嵌套字段,再清理原字段,最后转回字典数组:
import pandas as pd # 假设df是从数据库获取的原始DataFrame df = pd.DataFrame(data) # 生成嵌套的years字段 df['years'] = df.apply(lambda row: { 'firstYear': row['firstYear'], 'lastYear': row['lastYear'] }, axis=1) # 删除原有的扁平字段 df = df.drop(columns=['firstYear', 'lastYear']) # 转换为目标结构的Python对象数组 result_data = df.to_dict('records')
方法二:直接处理字典列表(高效简洁)
用列表推导式结合字典解构与pop方法,直接改造原字典列表:
# 直接处理原始数据列表 result_data = [ { **item, 'years': { 'firstYear': item.pop('firstYear'), 'lastYear': item.pop('lastYear') } } for item in data ]
说明
- 方法一适合数据仍以DataFrame形式存在的场景,借助Pandas的向量化处理能力,在数据量较大时性能更优。
- 方法二无需依赖Pandas,直接操作字典列表,代码简洁且执行效率高,避免了手动循环的冗余和出错可能。
内容的提问来源于stack exchange,提问作者Lev Dzhepko
相关产品推荐
相关产品推荐

