Один из способов состоит в том, чтобы превратить одиночные диктанты в список, содержащий диктанты.Тогда все записи могут обрабатываться одинаково
>>> D = {
... 'Resent-Bcc': [],
... 'Delivered-To': [],
... 'From': {'Name': 'Steve Watson', 'Address': 'steve.watson@example.org'},
... 'Cc': [],
... 'Resent-Cc': [],
... 'Bcc': [ {'Name': 'Daryl Hurstbridge', 'Address': 'daryl.hurstbridge@example.org'},
... {'Name': 'Sally Hervorth', 'Address': 'sally.hervorth@example.org'},
... {'Name': 'Mike Merry', 'Address': 'mike.merry@example.org'},
... {'Name': 'Jenny Callisto', 'Address': 'jenny.callisto@example.org'}
... ],
... 'To': {'Name': 'Darius Jedburgh', 'Address': 'darius.jedburgh@example.org'}
... }
>>> L = [v if type(v) is list else [v] for v in D.values()]
>>> [(d["Name"], d["Address"]) for item in L for d in item ]
[('Steve Watson', 'steve.watson@example.org'), ('Daryl Hurstbridge', 'daryl.hurstbridge@example.org'), ('Sally Hervorth', 'sally.hervorth@example.org'), ('Mike Merry', 'mike.merry@example.org'), ('Jenny Callisto', 'jenny.callisto@example.org'), ('Darius Jedburgh', 'darius.jedburgh@example.org')]
или версия с одним вкладышем
[(d["Name"], d["Address"]) for item in (v if type(v) is list else [v] for v in D.values())]