如何根据匹配的顶级键将元素从一个字典插入到另一个字典

加勒特麦克林托克

我有一个需要填写的字典列表。它具有客户服务案例编号的顶级标识符。我有另一个词典列表,其中包含与案例相关的所有电子邮件信息 - 这些词典还包含与电子邮件相关的案例编号。

我正在尝试分解电子邮件列表并将它们关联到第一个案例列表中。

我正在使用 Simple Salesforce Package 提取信息。

#First dictionary:

Cases =
    [{CaseNumber : "1",
     Date: "value",
     Reason: "value",
     Emails: NONE (need to add here)},
     {CaseNumber : "2",
     Date: "value",
     Reason: "value",
     Emails: NONE (need to add here)}]

#etc.  this list is a set of dictionaries of all the cases related to an order #number that is passed in previously.

#The second list of is a list of all of the emails related to the above cases -

Emails =
    [{CaseNumber : "1",
     Date: "value",
     EmailBody: "value",},
     {CaseNumber : "1",
     Date: "value",
     EmailBody: "value",},
     {CaseNumber : "2",
     Date: "value",
     EmailBody: "value",}]

#So this list needs to get nested accordingly to the Emails key by matching on case number

Cases =
    [{CaseNumber : "1",
     Date: "value",
     Reason: "value",
     Emails: emails[1,2,etc]},
     {CaseNumber : "2",
     Date: "value",
     Reason: "value",
     Emails: emails[3,4,etc]}]

应创建与顶级案例 ID 相关的嵌套词典列表。

尼维斯

可能不是最快的解决方案,但我会浏览电子邮件并根据CaseNumber. 这将是基于该值的电子邮件列表。从这里,您可以遍历每个案例,获取CaseNumber,并将列表插入到Emails字典部分中

from collections import defaultdict

e = defaultdict(list)

for email in Emails:
    case = email.get('CaseNumber')
    e[case].append(email)

for case in Cases:
     casenumber = case.get('CaseNumber')
     case['Emails'] = e[casenumber]

# Cases now looks like [{'CaseNumber': '0', 'Emails': [{'EmailBody': 'value'},...], {'CaseNumber': '1', 'Emails': [{'EmailBody': 'value',...}]}]

defaultdict是一个字典,如果键不存在,它将插入一个列表,允许e[key].append()调用而不检查键是否在字典中。文档在这里

编辑:

在完整的利益,要做到这一点的方式,而不 defaultdict将如下所示:

e = {}
for email in Emails:
    case = email.get('CaseNumber')
    if not case in e:
        # create single element list if key not in dictionary
        e[case] = [email]
    else:
        e[case].append(email)

更简而言之,您可以使用getKeyErrors完全避免

for email in Emails:
    case = email.get('CaseNumber')
    e[case] = e.get(case, []).append(email)

Whereget将返回关联的值case或指定为第二个参数的默认值(此处为 a list

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将键/值从一个字典复制到另一个

来自分类Dev

将字典中的键复制到另一个字典

来自分类Dev

如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

来自分类Dev

如何根据python中另一个字典键的匹配来修改字典中的键值列表?

来自分类Dev

使用Python将1个字典的值与另一个字典的键匹配

来自分类Dev

从一个字典的键和另一个字典的值构建一个新字典

来自分类Dev

如何遍历字典中的键并与另一个字典中的键/值匹配

来自分类Dev

从另一个字典创建一个字典

来自分类Dev

如何使用 if 语句作为字典键并填充另一个字典?

来自分类Dev

通过使用另一个字典键和值构造一个字典

来自分类Dev

如何将字典的内容复制到另一个字典以在之后清除原始字典

来自分类Dev

如何针对另一个字典键/值匹配查询嵌套对象字典

来自分类Dev

如何从一个字典向另一个不同类型的字典添加条目?

来自分类Dev

循环将一个字典附加到另一个字典

来自分类Dev

如何将字典值映射到另一个字典

来自分类Dev

如何将字典映射到另一个字典Python

来自分类Dev

如何映射键,在另一个字典中查找键?

来自分类Dev

如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

来自分类Dev

如何将字典的键值与另一个字典的值匹配并附加结果?

来自分类Dev

python,使用理解选择性地将值从一个字典弹出到另一个字典中

来自分类Dev

如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

来自分类Dev

如何在一个字典中找到在另一个字典中没有对应项的键?

来自分类Dev

如何创建一个字典来显示另一个字典的哪些值属于哪些键

来自分类Dev

将一个字典的元素与另一个字典中的值范围进行比较

来自分类Dev

将一个字典的元素与另一个字典中的值范围进行比较

来自分类Dev

用另一个字典的键替换字典的值

来自分类Dev

用另一个字典的键替换字典的值

来自分类Dev

使用另一个字典列表中的键对字典列表进行排序

来自分类Dev

Django 模板从另一个字典键访问字典

Related 相关文章

  1. 1

    将键/值从一个字典复制到另一个

  2. 2

    将字典中的键复制到另一个字典

  3. 3

    如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

  4. 4

    如何根据python中另一个字典键的匹配来修改字典中的键值列表?

  5. 5

    使用Python将1个字典的值与另一个字典的键匹配

  6. 6

    从一个字典的键和另一个字典的值构建一个新字典

  7. 7

    如何遍历字典中的键并与另一个字典中的键/值匹配

  8. 8

    从另一个字典创建一个字典

  9. 9

    如何使用 if 语句作为字典键并填充另一个字典?

  10. 10

    通过使用另一个字典键和值构造一个字典

  11. 11

    如何将字典的内容复制到另一个字典以在之后清除原始字典

  12. 12

    如何针对另一个字典键/值匹配查询嵌套对象字典

  13. 13

    如何从一个字典向另一个不同类型的字典添加条目?

  14. 14

    循环将一个字典附加到另一个字典

  15. 15

    如何将字典值映射到另一个字典

  16. 16

    如何将字典映射到另一个字典Python

  17. 17

    如何映射键,在另一个字典中查找键?

  18. 18

    如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

  19. 19

    如何将字典的键值与另一个字典的值匹配并附加结果?

  20. 20

    python,使用理解选择性地将值从一个字典弹出到另一个字典中

  21. 21

    如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

  22. 22

    如何在一个字典中找到在另一个字典中没有对应项的键?

  23. 23

    如何创建一个字典来显示另一个字典的哪些值属于哪些键

  24. 24

    将一个字典的元素与另一个字典中的值范围进行比较

  25. 25

    将一个字典的元素与另一个字典中的值范围进行比较

  26. 26

    用另一个字典的键替换字典的值

  27. 27

    用另一个字典的键替换字典的值

  28. 28

    使用另一个字典列表中的键对字典列表进行排序

  29. 29

    Django 模板从另一个字典键访问字典

热门标签

归档