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

基于OrderedDict列表创建Pandas DataFrame触发KeyError:0问题求助

问题根因

代码中存在冗余的[0]索引取值,核心原因是你当前使用的source_data结构和参考场景的输入结构不一致:

  • 参考场景的输入为列表嵌套子列表,子列表中存储OrderedDict,结构为[[OrderedDict()], [OrderedDict()], ...],因此需要通过[i][0]取出内层的OrderedDict对象
  • 你当前的source_data为列表直接存储OrderedDict,结构为[OrderedDict(), OrderedDict(), ...],每个元素本身就是可直接传入pandas的字典结构,额外加[0]相当于尝试从OrderedDict中取出键为0的值,而你的OrderedDict所有键均为字符串,因此抛出KeyError: 0

修复方案

直接删除冗余的[0]索引即可,pandas原生支持直接传入由OrderedDict组成的列表生成DataFrame:

def _dataframe_from_ordered_dict(self, source_data):
    return pd.DataFrame(source_data)

如果需要保留列表推导式写法,也可以调整为如下形式,效果完全一致:

def _dataframe_from_ordered_dict(self, source_data):
    return pd.DataFrame([item for item in source_data])

使用你提供的source_data子集测试上述代码,可正常生成包含\ufeffZipcode、primary_city等对应字段的DataFrame,无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:36:04