查询交叉引用词典

2024-05-15 05:44:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我被一些单子/字典的工作困住了。这是我拥有的第一批词典的一部分

{'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': 'john@example.com ',
 'id': 'rec0KMaG8L7qldPuI'}

链接通过id字段。因此,上述字典中的源和目标引用了第二个字典中的一个条目。我知道你需要从上面的字典向每一个来源发送电子邮件,同时反复浏览列表。你知道吗

两者都是词典目录。我的问题是我是否也需要遍历第二个列表,或者是否有一种方法可以更智能地引用与上面的源匹配的记录?你知道吗


Tags: idsourcetargetfields列表字典条目词典
1条回答
网友
1楼 · 发布于 2024-05-15 05:44:23

因为你的数据是格式化的,答案是肯定的,你必须迭代,因为字典是用来当你知道键,你想有相应的值。在这里,您想要检索知道值的键,这是相反的情况。你知道吗

如果这是您想要的,我建议您修改数据的结构,使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': 'john@example.com '}
         },
    'reclfUAfAmCRlmuKw' :
         {'createdTime': '2017-10-05T03:43:02.000Z',
         'fields': {'Name': 'Ehtel',
                    'E-Mail': 'ethel@example.com '}
         },
    'recMV3zbkgevDEgr0y' :
         {'createdTime': '2017-10-05T03:43:02.000Z',
         'fields': {'Name': 'Gertrude',
                    'E-Mail': 'gertrude@example.com '}
         },

    }

然后你可以做如下事情:

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

但这取决于数据的结构

相关问题 更多 >

    热门问题