#python #simple-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([(«атрибуты», OrderedDict([(«тип», «Авторизованный продукт__c»), («url», «/услуги/данные/v42.0/объекты/Авторизованный продукт__c/a020o00000xC1fmAAC»)])), («Бренд__c», «ABB»), («Имя», «UNO-DM-1.2-TL-PLUS-B»)]) | 14000 |
OrderedDict([(«атрибуты», OrderedDict([(«тип», «Авторизованный продукт__c»), («url», «/услуги/данные/v42.0/объекты/Авторизованный продукт__c/a020o00000xC1fnAAC»)])), («Бренд__c», «ABB»), («Имя», «UNO-DM-1.2-TL-PLUS-SB»)]) | 14000 |
Упорядоченный указ([(«атрибуты», Упорядоченный указ([(«тип», «Авторизованный продукт__c»), («url», «/услуги/данные/v42.0/объекты/Авторизованный продукт__c/a020o00000xC1foAAC»)])), («Торговая марка__c», «ABB»), («Имя», «UNO-DM-2.0-TL-ПЛЮС-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-ПЛЮС-SB |
Теперь форма матрицы такова
sf_authprod.shape
(14000, 50)
Я объединяю этот фрейм данных с внешним фреймом данных с
df_authprodnew= pd.merge(sf_authprod,
df1,
on =['Brand_Name__c'],
how ='right')
Теперь я хочу заменить исходный объект AuthorizedProduct__c на df_authprodnew обратно в salesforce. Но на этот раз форма фрейма данных (14000 на 48). Что также означает, что формат данных должен вернуться к
записи | общий размер |
---|---|
OrderedDict([(«атрибуты», OrderedDict([(«тип», «Авторизованный продукт__c»), («url», «/услуги/данные/v42.0/объекты/Авторизованный продукт__c/a020o00000xC1fmAAC»)])), («Бренд__c», «ABB»), («Имя», «UNO-DM-1.2-TL-PLUS-B»)]) | 14000 |
How can I replace a big salesforce object such as AuthorisedProduct__c with a new AuthorisedProduct__c(df_authprodnew renamed), that includes new information such as changes in some values and additions in values.
I want to replace the old table with this new table/ or upload a new table onto salesforce using simple_salesforce and keep replacing the past table every week?
Also, what is the equivalent of sf.query_all(«SELECT * FROM AuthorisedProduct__c)?
Thank you again for your kind suggestions.