【问题标题】:Compare data list in python比较python中的数据列表
【发布时间】: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?我在您的输入数据中看不到任何一个。
  • 有什么问题?你的具体问题是什么?你的代码的结果是什么?它与你想要的输出不匹配?
  • 您是要专门匹配IdSalesforceID,还是要寻找任何两个匹配值?
  • 除了 print 语句之外,您在代码 sn-p 中还引用了 list_equal 在哪里?

标签: python sharepoint salesforce-service-cloud


猜你喜欢
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多