2017-11-18 3 views
0

일부 목록/사전 작업이 있습니다. 여기에 사전의 첫 번째 목록의 일부가 내가 (여기에 관련이없는 모든 의해 제거) SourceTarget은 다음과 같습니다 다른 사전에서 항목을 참조에서상호 참조 사전 쿼리

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

이의

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

링크입니다 id 필드를 통해. 따라서 위의 사전의 소스 및 대상은 두 번째 항목의 항목을 참조합니다. 목록을 반복하면서 위의 사전에서 모든 소스에 전자 메일을 보내야한다는 것을 알고 있습니다.

둘 다 사전 목록입니다. 제 질문은 두 번째 목록을 반복해야합니까 아니면 더 똑똑한 방법으로 위에서 소스를 일치시키는 레코드를 참조 할 수있는 방법이 있습니까?

답변

0

데이터 형식이 정해져 있기 때문에 사전은 키를 알고 있고 해당 값을 갖고 싶을 때 사용하기 때문에 반복해야합니다. 여기에서는 역 상황 인 값을 알고있는 키를 검색하려고합니다.

이제 원하는 경우 데이터의 구조를 수정하여 id이 필드가 아니라 사용자의 dict의 키가되도록하는 것이 좋습니다. 예를 들어 :

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'] 

을하지만 데이터가 구조화 된 방법에 따라 달라집니다