如何将Airtable API返回的嵌套OrderedDict转换为DataFrame
没问题,这就帮你解决这个转换问题。你当前的代码之所以不符合预期,是因为直接把顶层的OrderedDict(包含'records'键)传给了pd.DataFrame.from_dict,但实际上你需要的是提取每个record里的**'fields'**子字典——也就是存着Lead ID、Company Name这些字段的部分。
具体操作步骤如下:
方法1:只提取核心业务字段(Lead ID等)
首先从data里取出'records'列表,然后遍历每个record,把里面的'fields'字典收集起来,最后用这个字典列表创建DataFrame:
# 提取所有record的fields字典 field_list = [record['fields'] for record in data['records']] # 转换为DataFrame df = pd.DataFrame(field_list)
方法2:同时保留record的元数据(可选)
如果你还想把每个record的'id'和'createdTime'也作为列保留在DataFrame里,可以这样做:
field_list_with_meta = [] for record in data['records']: # 先复制fields字典,避免修改原数据结构 fields = record['fields'].copy() # 添加record的ID和创建时间字段 fields['record_id'] = record['id'] fields['created_time'] = record['createdTime'] field_list_with_meta.append(fields) # 转换为DataFrame df = pd.DataFrame(field_list_with_meta)
为什么原代码会失败?
你之前用pd.DataFrame.from_dict(data)时,pandas会把顶层的键(比如'records'、'offset')作为DataFrame的列,而每个列的值是整个record对象,这就导致了你看到的那种混乱输出。我们上面的方法是精准定位到你需要的第三层子字典,所以能生成符合预期的结构化DataFrame。
内容的提问来源于stack exchange,提问作者user9233680
相关产品推荐
相关产品推荐

