如何用python中的pandas数据帧对象替换salesforce对象?

问题描述

我正在将一个 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'),('Name','UNO-DM-1.2-TL-PLUS-B')]) 14000
OrderedDict([('attributes','/services/data/v42.0/sobjects /AuthorisedProduct__c/a020o00000xC1fnAAC')])),'UNO-DM-1.2-TL-PLUS-SB')]) 14000
OrderedDict([('attributes','/services/data/v42.0/sobjects /AuthorisedProduct__c/a020o00000xC1foAAC')])),'UNO-DM-2.0-TL-PLUS-B')]) 14000

使用

转换pandas数据帧中的记录字段后
sf_authprod = pd.DataFrame(sf_data['records']).drop(['attributes'],axis=1)

桌子更干净

Brand_Name__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','UNO-DM-1.2-TL-PLUS-B')]) 14000

如何使用新的 AuthorisedProduct__c(df_authprodnew 重命名)替换 AuthorisedProduct__c 等大型 salesforce 对象,其中包含新信息,例如某些值的更改和值的添加

我想用这个新表替换旧表/或使用 simple_salesforce 将新表上传到 salesforce 并每周继续替换过去的表?

另外,sf.query_all("SELECT * FROM AuthorisedProduct__c) 的等价物是什么?

再次感谢您的友好建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)