【发布时间】:2022-06-13 23:09:27
【问题描述】:
我尝试在 Python 中比较两个列表。 第一个列表来自 Salesforce 调用,另一个来自使用 Shareplum 的 Sharepoint 列表。
来自 Salesforce 的列表格式如下:
[OrderedDict([('attributes', OrderedDict([('type', 'FlashS__c'), ('url', '/services/data/v42.0/sobjects/FlashSale__c/123456')])), ('Id', '123456'), ('FlashSaleOpeningDate__c', '2021-10-13T00:00:00.000+0000'), ('Endofflashsaledate__c', '2021-10-19T21:59:00.000+0000'), ('ID__c', '350601FR'), ('Is_Extended__c', False), ('End_date_after_extension__c', None), ('FS_Extension__c', None), ('Stage__c', '5-Planned'), ('BUGlobal__c', 'fr_FR')])]
Sharepoint 的列表格式如下:
[{
'Title': 'en_En - Mon titre - Test - 2022-06-06',
'Opening Date': datetime.datetime(2022, 6, 6, 2, 0),
'Close Date': datetime.datetime(2022, 6, 12, 23, 59),
'Country': 'Switzerland',
'City': 'Davos',
'BU': 'en_En',
'ProductType': 'Maj',
'MHMT': 'No',
'SalesforceID': '123456',
'FS Stage': '5-Planned'
}]
我想循环查找一行是否存在于一个列表和另一个列表中。我想将结果注册到这样的新列表中:
SalesForce Sharepoint
123456 123456
896587 KO
KO 456789
我已经尝试过这样做:
list_result = []
for i in range(len(sf_api_data['records'])):
for j in range(len(shp_api_data)):
if sf_api_data['records'][i]['Id'] == shp_api_data[j]['SalesforceID']:
if sf_api_data['records'][i]['Id'] not in list_result:
list_result[i]['Salesforce'] = sf_api_data['records'][i]['Id']
list_result[i]['Sharepoint'] = shp_api_data[j]['SalesforceID']
print(list_equal)
sf_api_data['records'] 是 Salesforce 列表
shp_api_data 是共享点列表
你有想法吗?
谢谢
【问题讨论】:
-
896587来自哪里,为什么匹配KO?我在您的输入数据中看不到任何一个。 -
有什么问题?你的具体问题是什么?你的代码的结果是什么?它与你想要的输出不匹配?
-
您是要专门匹配
Id和SalesforceID,还是要寻找任何两个匹配值? -
除了 print 语句之外,您在代码 sn-p 中还引用了 list_equal 在哪里?
标签: python sharepoint salesforce-service-cloud