2017-11-18 8 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フィールドを介してしたがって、上記の辞書のソースとターゲットは、2番目のエントリを参照します。上記の辞書からすべてのSourceに電子メールを送信し、リストを反復する必要があることはわかっています。

いずれも辞書のリストです。私の質問は、2番目のリストを繰り返し処理する必要があるのですか?または、ソースを上から賢明な方法で参照してレコードを参照する方法はありますか?

答えて

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

をしかし、それはあなたのデータは

を構造化された方法によって異なります