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

如何解决Python字典转pandas DataFrame时元素顺序引发的from_dict报错

问题原因

pd.DataFrame.from_dict指定orient='index'参数时,pandas会优先读取字典第一个值的类型推断解析规则:

  • 若第一个值为字典:触发嵌套字典解析逻辑,尝试将所有值视为字典提取子键作为列,后续遇到int等非字典类型就会抛出AttributeError: 'int' object has no attribute 'items'
  • 若第一个值为列表:尝试按列表长度拆分为多行,后续遇到无长度属性的单值就会抛出TypeError: object of type 'int' has no len()
    这就是转换结果受字典键顺序影响的核心原因。
通用解决方案

直接通过字典的键值对构造DataFrame,绕开pandas的自动类型推断逻辑,不管字典值类型、键顺序如何都可以得到预期结果:

import pandas as pd

# 测试用字典,首元素为字典类型
my_dict2 = {'c': {'x': 'aa', 'y': 'bb'}, 'a': 1, 'b': [1, 2, 3]}
df = pd.DataFrame(my_dict2.items(), columns=['prop_name', 'prop_value'])
print(df)

输出结果:

prop_name              prop_value
0         c  {'x': 'aa', 'y': 'bb'}
1         a                       1
2         b               [1, 2, 3]

该方案逻辑是直接将dict.items()返回的每一组(键, 值)元组作为DataFrame的一行,不会对值做任何自动展开或解析,完全匹配需求效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:48:03