0

我正在将一个 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) 的等价物是什么?

再次感谢您的友好建议。

4

0 回答 0