2017-11-18 191 views
0

我堅持一些列表/字典的工作。下面是字典的第一列表的一部分,我有查詢交叉參考字典

{'createdTime': '2017-11-18T11:11:42.223Z', 
'fields': {'Pair ID': 307, 
      'Source': ['recmSPeRUDk7JxTEs'], 
      'Target': ['recEijqlS0kjmIjpL']}, 
'id': 'rec02AuJ8QzEZR56b'} 

SourceTarget它引用從另一個字典,看起來像這樣的條目(通過這裏的一切不相關剝離)

{'createdTime': '2017-11-05T17:14:59.000Z', 
'fields': {'Name': 'John', 
      'E-Mail': '[email protected] ', 
'id': 'rec0KMaG8L7qldPuI'} 

的鏈接通過id字段。所以上面字典中的源和目標引用了第二個條目。我知道需要發送電子郵件到上面的字典中的每個源代碼,同時遍歷列表。

兩者都是詞典的列表。我的問題是我是否需要遍歷第二個列表,或者是否有方法以更智能的方式引用與上面的Source匹配的記錄?

回答

0

由於您的數據格式化的答案是肯定的,你必須迭代,因爲當你知道密鑰並且你想要相應的值時,就要使用字典。在這裏,您想要檢索知道相反情況的值的密鑰。

現在,如果這是你想要的,我會建議修改你的數據的結構,以便id不是一個字段,但直接是你的字典的關鍵。例如:

events_recorded = { 
    'rec02AuJ8QzEZR56b' : 
     {'createdTime': '2017-11-18T11:11:42.223Z', 
     'fields': { 
        'Pair ID': 307, 
        'Source': ['recmSPeRUDk7JxTEs'], 
        'Target': ['recEijqlS0kjmIjpL']}, 
     }, 
    'recRkckX9nfl5VhWk' : 
     {'createdTime': '2017-11-18T12:05:42.223Z', 
     'fields': { 
        'Pair ID': 45, 
        'Source': ['reclfUAfAmCRlmuKw'], 
        'Target': ['recMIG7mm7eNZ79IC']}, 
     }, 
    'receeyCtLXIA2r1dw' : 
     {'createdTime': '2017-11-18T12:05:42.223Z', 
     'fields': { 
        'Pair ID': 45, 
        'Source': ['recnQPVxk5Lvv73xz'], 
        'Target': ['recMV3zbkgevDEgr0y']}, 
     }, 

} 


addressbook = { 
    'rec0KMaG8L7qldPuI' : 
     {'createdTime': '2017-11-05T17:14:59.000Z', 
     'fields': {'Name': 'John', 
        'E-Mail': '[email protected] '} 
     }, 
    'reclfUAfAmCRlmuKw' : 
     {'createdTime': '2017-10-05T03:43:02.000Z', 
     'fields': {'Name': 'Ehtel', 
        'E-Mail': '[email protected] '} 
     }, 
    'recMV3zbkgevDEgr0y' : 
     {'createdTime': '2017-10-05T03:43:02.000Z', 
     'fields': {'Name': 'Gertrude', 
        'E-Mail': '[email protected] '} 
     }, 

    } 

然後,您可以做這樣的事情:

reference_wanted = events_recorded['rec02AuJ8QzEZR56b']['fields']['Source'][0] 
email_wanted = addressbook[reference_wanted]['fields']['E-Mail'] 

但是這取決於你的數據是如何結構化