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

不同数组长度的嵌套字典转DataFrame的实现方案

解决方案:处理嵌套字典生成DataFrame(适配字段数量不一致的情况)

我来帮你搞定这个问题!你遇到的报错本质是因为不同联系人记录的properties字段数量不一样,直接用pd.DataFrame()转换时,pandas要求所有列的长度必须一致,所以才会抛出ValueError: arrays must all be same length。

咱们的思路是先把每个联系人的嵌套properties转换成扁平的键值对字典,再用这些扁平字典来生成DataFrame——pandas会自动为缺失的字段填充NaN,完美适配字段数量不一致的场景。

步骤1:编写扁平化函数处理单个联系人记录

先写一个小函数,把单个联系人字典里properties的嵌套结构“拍平”,直接提取每个字段对应的value值:

def flatten_contact(contact):
    # 初始化一个空字典存储扁平化后的字段
    flat_data = {}
    
    # 提取properties里的所有字段值
    for prop_key, prop_value in contact['properties'].items():
        flat_data[prop_key] = prop_value['value']
    
    # (可选)如果需要保留顶层字段(比如vid、addedAt这些),可以加上这段
    # 把你需要的顶层字段列在这里
    top_level_fields = ['vid', 'addedAt', 'portal-id', 'is-contact']
    for field in top_level_fields:
        flat_data[field] = contact.get(field)
    
    return flat_data

步骤2:批量处理所有联系人记录

假设你的原始数据是一个包含多个联系人字典的列表(比如叫contacts_list),用列表推导式批量处理每个记录:

import pandas as pd

# 批量扁平化所有联系人数据
flattened_contacts = [flatten_contact(contact) for contact in contacts_list]

# 生成DataFrame,pandas会自动处理缺失字段,用NaN填充
df = pd.DataFrame(flattened_contacts)

# 导出到CSV(index=False表示不导出索引列)
df.to_csv('hubspot_contacts.csv', index=False)

为什么之前的方法会失效?

  • 你之前的单行代码pd.DataFrame(dict([ (k,pd.Series(v)) for k, v in contact_dict['properties'].items() ]))只能处理单个联系人,所以生成的是单行DataFrame,没法批量处理多记录。
  • 直接用pd.DataFrame(contact_dict)是把整个字典的顶层键当成列,但每个键对应的数组长度不一致(因为不同联系人的properties字段数不同),不符合pandas创建DataFrame的要求,所以触发了报错。

示例效果

假设你有两个联系人记录:

contacts_list = [
    {
        'vid': 123,
        'properties': {'firstname': {'value': 'John'}, 'associatedcompanyid': {'value': '54321'}}
    },
    {
        'vid': 456,
        'properties': {'firstname': {'value': 'Jane'}, 'hs_analytics_last_url': {'value': 'https://website.com/contactus/'}}
    }
]

处理后生成的DataFrame会是:

firstnameassociatedcompanyidhs_analytics_last_urlvid
John54321NaN123
JaneNaNhttps://website.com/contactus/456

完全适配字段不一致的情况,导出CSV也不会有问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:59:04