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

如何访问simple_salesforce返回的嵌套OrderedDict元素并导入至Pandas DataFrame?

从Simple Salesforce查询结果提取数据生成Pandas DataFrame

我使用simple_salesforce查询Salesforce后,得到如下结果:

OrderedDict([('totalSize', 1),
             ('done', True),
             ('records',
              [OrderedDict([('attributes',
                             OrderedDict([('type', 'Contact'),
                                          ('url', '/services/data/v42.0/sobjects/Contact/0038')])),
                                          ('GUID', '7AFCC9D7'),
                                          ('Email', 'test@yahoo.com'),
                                          ('Contact_id', '0038')])])])

我希望访问其中的type、url、GUID、Email和Contact_id这五个条目,并将它们添加至Pandas DataFrame中,请问该如何实现?


解决方案

要实现这个需求,你可以通过字典索引逐层提取所需字段,再将整理好的数据传入Pandas的DataFrame构造函数。具体代码如下:

from collections import OrderedDict
import pandas as pd

# 假设查询结果存储在变量result中
result = OrderedDict([('totalSize', 1),
             ('done', True),
             ('records',
              [OrderedDict([('attributes',
                             OrderedDict([('type', 'Contact'),
                                          ('url', '/services/data/v42.0/sobjects/Contact/0038')])),
                                          ('GUID', '7AFCC9D7'),
                                          ('Email', 'test@yahoo.com'),
                                          ('Contact_id', '0038')])])])

# 提取单条记录中的目标字段
record = result['records'][0]
extracted_data = {
    'type': record['attributes']['type'],
    'url': record['attributes']['url'],
    'GUID': record['GUID'],
    'Email': record['Email'],
    'Contact_id': record['Contact_id']
}

# 转换为DataFrame
df = pd.DataFrame([extracted_data])

# 输出查看结果
print(df)

处理多条记录的情况

如果你的查询结果包含多条记录(totalSize大于1),可以通过循环遍历records列表批量提取数据:

data_list = []
for record in result['records']:
    item = {
        'type': record['attributes']['type'],
        'url': record['attributes']['url'],
        'GUID': record['GUID'],
        'Email': record['Email'],
        'Contact_id': record['Contact_id']
    }
    data_list.append(item)

df = pd.DataFrame(data_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:50:43