我试图使用python中的simple_salesforce
包从salesforce查询信息。在
问题在于,它将作为父子关系一部分的字段嵌套到有序dict中
我想要。。从Opportunity对象中查找id以及与该记录关联的accountid。在
SOQL可能看起来像。。在
query = "select id, account.id from opportunity where closedate = last_n_days:5"
在SOQL(salesforce对象查询语言)中,点表示数据库中的父子关系。所以我尝试从opportunity对象获取id,然后从该记录上的account对象获取相关id。在
不知为什么身份证没问题,但是帐户.id嵌套在有序dict中的有序dict中:
^{pr2}$这把一本订好的字典拉回来了。。在
OrderedDict([('totalSize', 455),
('done', True),
('records',
[OrderedDict([('attributes',
OrderedDict([('type', 'Opportunity'),
('url',
我将拉出records
的ordereddict
部分来创建df
df = pd.DataFrame(q['records'])
这给了我3列,一个有序dict称为'attributes'
,Id
,另一个有序dict称为'Account'
。我正在寻找一种从嵌套有序dict中提取('BillingCountry', 'United States')
片段的方法'Account'
[OrderedDict([('attributes',
OrderedDict([('type', 'Opportunity'),
('url',
'/services/data/v34.0/sobjects/Opportunity/0061B003451RhZgiHHF')])),
('Id', '0061B003451RhZgiHHF'),
('Account',
OrderedDict([('attributes',
OrderedDict([('type', 'Account'),
('url',
'/services/data/v34.0/sobjects/Account/001304300MviPPF3Z')])),
('BillingCountry', 'United States')]))])
编辑:澄清我在找什么。在
我想以一个dataframe结尾,每个查询字段都有一个列。在
当我使用df = pd.DataFrame(sf.query_all(query)['records'])
将'records'
片段放入一个数据帧中时,它给出了:
attributes Id Account
OrderedDict([('type', 'Opportunity'), ('url', '/services/data/v34.0/sobjects/Opportunity/0061B003451RhZgiHHF')]) 0061B003451RhZgiHHF OrderedDict([('attributes', OrderedDict([('type', 'Account'), ('url', '/services/data/v34.0/sobjects/Account/0013000000MvkRQQAZ')])), ('BillingCountry', 'United States')])
OrderedDict([('type', 'Opportunity'), ('url', '/services/data/v34.0/sobjects/Opportunity/0061B00001Pa52QQAR')]) 0061B00001Pa52QQAR OrderedDict([('attributes', OrderedDict([('type', 'Account'), ('url', '/services/data/v34.0/sobjects/Account/0011300001vQPxqAAG')])), ('BillingCountry', 'United States')])
OrderedDict([('type', 'Opportunity'), ('url', '/services/data/v34.0/sobjects/Opportunity/0061B00001TRu5mQAD')]) 0061B00001TRu5mQAD OrderedDict([('attributes', OrderedDict([('type', 'Account'), ('url', '/services/data/v34.0/sobjects/Account/0011300001rfRTrAAE')])), ('BillingCountry', 'United States')])
删除'attributes'
列之后,我希望输出为
Id BillingCountry
0061B003451RhZgiHHF 'United States'
0061B00001Pa52QQAR 'United States'
0061B00001TRu5mQAD 'United States'
熊猫能读有序的字典。在
熊猫是一个惊人的表格数据工具。但是,虽然它可以包含Python对象,但这并不是它的最佳选择。我建议您在将数据插入
pandas.Dataframe
之前从查询中提取数据:提取记录:
提取所需字段作为字典列表很容易:
将记录插入数据帧:
使用dict列表,数据帧就像:
^{pr2}$测试代码:
测试结果:
相关问题 更多 >
编程相关推荐