我正在将一个 salesforce 对象提取到 python 中,以便将数据框与一些外部数据框合并。
!pip install simple_salesforce
from simple_salesforce import Salesforce
import pandas as pd
sf = Salesforce(
username='',
password='',
security_token='')
sf_data = sf.query_all("SELECT Brand_Name__c,Name FROM AuthorisedProduct__c)
sf_df = pd.DataFrame(sf_data)
sf_df.head()
在这个阶段,记录字段看起来像
记录 | 总大小 |
---|---|
OrderedDict([('attributes', OrderedDict([('type', 'AuthorisedProduct__c'), ('url', '/services/data/v42.0/sobjects/AuthorisedProduct__c/a020o00000xC1fmAAC')])), ('Brand_Name__c ', 'ABB'), ('名称', 'UNO-DM-1.2-TL-PLUS-B')]) | 14000 |
OrderedDict([('attributes', OrderedDict([('type', 'AuthorisedProduct__c'), ('url', '/services/data/v42.0/sobjects/AuthorisedProduct__c/a020o00000xC1fnAAC')])), ('Brand_Name__c ', 'ABB'), ('名称', 'UNO-DM-1.2-TL-PLUS-SB')]) | 14000 |
OrderedDict([('attributes', OrderedDict([('type', 'AuthorisedProduct__c'), ('url', '/services/data/v42.0/sobjects/AuthorisedProduct__c/a020o00000xC1foAAC')])), ('Brand_Name__c ', 'ABB'), ('名称', 'UNO-DM-2.0-TL-PLUS-B')]) | 14000 |
将 pandas 数据框中的记录字段转换为
sf_authprod = pd.DataFrame(sf_data['records']).drop(['attributes'],axis=1)
桌子更干净
品牌名称__C | 姓名 |
---|---|
ABB | UNO-DM-2.0-TL-PLUS-B |
ABB | UNO-DM-1.2-TL-PLUS-SB |
现在,矩阵的形状是
sf_authprod.shape
(14000, 50)
我正在将此数据框与外部数据框合并
df_authprodnew= pd.merge(sf_authprod,
df1,
on =['Brand_Name__c'],
how ='right')
现在我想用 df_authprodnew 将原始 AuthorisedProduct__c 对象替换回 salesforce。但是这次数据框的形状是(14000 x 48)。这也意味着数据格式应该回到
记录 | 总大小 |
---|---|
OrderedDict([('attributes', OrderedDict([('type', 'AuthorisedProduct__c'), ('url', '/services/data/v42.0/sobjects/AuthorisedProduct__c/a020o00000xC1fmAAC')])), ('Brand_Name__c ', 'ABB'), ('名称', 'UNO-DM-1.2-TL-PLUS-B')]) | 14000 |
如何用新的 AuthorisedProduct__c(df_authprodnew 重命名)替换大型销售人员对象(例如 AuthorisedProduct__c),其中包括新信息,例如某些值的更改和值的添加。
我想用这个新表替换旧表/或使用 simple_salesforce 将新表上传到 salesforce 并每周继续替换过去的表?
另外,sf.query_all("SELECT * FROM AuthorisedProduct__c) 的等价物是什么?
再次感谢您的友好建议。