如何将Pandas DataFrame转换为包含key-value属性的指定JSON格式?
Pandas 数据结构转换优化方案
更优实现代码
你可以直接用to_dict搭配列表推导式实现,比原写法代码量更少、执行效率更高:
import pandas as pd data = [{"id":"1","name":"Joe","dob":"16 Jun 1999"},{"id":"2","name":"John","dob":"04 Aug 1997"}] df = pd.DataFrame(data) op = { "items": [ {"id": row.pop("id"), "attributes": [{"key": k, "value": v} for k, v in row.items()]} for row in df.to_dict("records") ] } print(op)
方案优势
- 代码更简洁:不需要单独定义转换函数、也不需要提前处理列名变量,核心逻辑只有1行
- 执行效率更高:
df.to_dict("records")是pandas底层C优化的批量转换接口,比逐行apply的执行效率高3~10倍,数据量越大优势越明显 - 鲁棒性更强:不需要依赖id列是第一列的顺序,哪怕后续列顺序调整也不会输出错误
内容的提问来源于stack exchange,提问作者iammdi
相关产品推荐
相关产品推荐

