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

pandas读取Excel如何动态转换为按行存储的Python字典列表

pandas读取Excel转按行字典列表的动态实现方案

直接使用pandas内置的to_dict()参数即可实现需求,无需硬编码列名、手动循环拼接。

核心实现

DataFrame.to_dict()方法支持通过orient参数控制输出结构,传入orient='records'即可直接得到「每行对应一个字典、列名为键、单元格值为值」的列表结构,自动适配所有列,列动态增减时不需要修改代码。

优化后的代码如下:

import pandas as pd

def read_excel(self, sheet_name):
    # 读取Excel工作表,可通过na_values参数指定需要识别为空值的内容
    df = pd.read_excel(
        io=self.excel_file,
        sheet_name=sheet_name,
        na_values=['-']  # 可选,将Excel中填写的'-'统一识别为NaN,和示例预期输出匹配
    )
    # 直接转换为目标结构
    objects = df.to_dict(orient='records')
    print(objects)
    return objects

参数说明

  • 未指定orient参数时,to_dict()默认使用orient='dict',输出结构为「列名作为一级键、行索引作为二级键」的嵌套字典,也就是最初调用得到的结果。
  • 指定orient='records'时,返回值为列表类型,列表长度和DataFrame行数一致,每个元素为对应行的键值对字典,自动读取所有列名作为键,无需手动枚举列。

执行上述代码后,输出结构和预期完全一致:

[
    {
        'type': 'area',
        'name': 'area1',
        'latitude': 50.33,
        'longitude': 4.23
    },
    {
        'type': 'building',
        'name': 'building1',
        'latitude': nan,
        'longitude': nan
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:27:07