Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python中的字典中提取电子邮件作为键值对?_Python_Python 3.x - Fatal编程技术网

如何从python中的字典中提取电子邮件作为键值对?

如何从python中的字典中提取电子邮件作为键值对?,python,python-3.x,Python,Python 3.x,从以下字典结构中,如何提取和打印电子邮件地址?我想见斯梅尔。david@gmail' 4, 'sdusa@yahoo.com"1等 dict_items([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1), ('2008',27), ('From', 27), ('11:35:08', 1), ('5', 1), ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:5

从以下字典结构中,如何提取和打印电子邮件地址?我想见斯梅尔。david@gmail' 4, 'sdusa@yahoo.com"1等

dict_items([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
('samuel.david@gmail.com', 4) ])

您可以迭代密钥,并仅获取包含
@
的密钥(假设所有密钥都是小时或电子邮件地址):

输出

sntp@hotmail.com
samuel.david@gmail.com
sdusa@yahoo.com

您可以迭代密钥,并仅获取包含
@
的密钥(假设所有密钥都是小时或电子邮件地址):

输出

sntp@hotmail.com
samuel.david@gmail.com
sdusa@yahoo.com

您可以迭代密钥,并仅获取包含
@
的密钥(假设所有密钥都是小时或电子邮件地址):

输出

sntp@hotmail.com
samuel.david@gmail.com
sdusa@yahoo.com

您可以迭代密钥,并仅获取包含
@
的密钥(假设所有密钥都是小时或电子邮件地址):

输出

sntp@hotmail.com
samuel.david@gmail.com
sdusa@yahoo.com
使用

输出:

 {'sdusa@yahoo.com': 1, 'samuel.david@gmail.com': 4, 'sntp@hotmail.com': 3}
使用

输出:

 {'sdusa@yahoo.com': 1, 'samuel.david@gmail.com': 4, 'sntp@hotmail.com': 3}
使用

输出:

 {'sdusa@yahoo.com': 1, 'samuel.david@gmail.com': 4, 'sntp@hotmail.com': 3}
使用

输出:

 {'sdusa@yahoo.com': 1, 'samuel.david@gmail.com': 4, 'sntp@hotmail.com': 3}
假设:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('samuel.david@gmail.com', 4) ])
如果地址是您显示的类型,您可以在按键上使用
filter

>>> list(filter(lambda s: '@' in s, d.keys()))
['sdusa@yahoo.com', 'samuel.david@gmail.com', 'sntp@hotmail.com']
但是,如果您可能有更完整的字符串表示
“Comment”的RFC822电子邮件地址,以将注释(或真实姓名)与实际地址分开:

>>> from email.utils import parseaddr
>>> parseaddr('"Santa" <Santa@np.org>')
('Santa', 'Santa@np.org')
>>来自email.utils import parseaddr
>>>parseaddr(“‘圣诞老人’”)
(‘圣诞老人’,’Santa@np.org')
那么:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('"Sammy Davis, Jr." <samuel.david@gmail.com>', 4) ])
>>> 
>>> from email.utils import parseaddr
>>> [parseaddr(s)[1] for s in d.keys() if '@' in parseaddr(s)[1]]
['sntp@hotmail.com', 'samuel.david@gmail.com', 'sdusa@yahoo.com']
d=dict([('10:04:14',1),('3',6),('Thu',6),('19:51:21',1), 例如,('2008',27),('From',27),('11:35:08',1),('5',1), ... ('sntp@hotmail.com,3),('Jan',27),('15:46:24',1),('14:50:18', ... 1), ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31', ... 1), ('10:38:42', 1), ('sdusa@yahoo.com', 1), …(“‘小萨米·戴维斯’”,4)]) >>> >>>从email.utils导入parseaddr >>>[parseaddr[1]用于d.keys()中的s,如果parseaddr[1]中的“@” ['sntp@hotmail.com“塞缪尔。david@gmail.com', 'sdusa@yahoo.com']
注意:
parseaddr
仅分隔有效但完整的RFC822地址的部分;它不会验证它是否为真实地址。

假设:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('samuel.david@gmail.com', 4) ])
如果地址是您显示的类型,您可以在按键上使用
filter

>>> list(filter(lambda s: '@' in s, d.keys()))
['sdusa@yahoo.com', 'samuel.david@gmail.com', 'sntp@hotmail.com']
但是,如果您可能有更完整的字符串表示
“Comment”的RFC822电子邮件地址,以将注释(或真实姓名)与实际地址分开:

>>> from email.utils import parseaddr
>>> parseaddr('"Santa" <Santa@np.org>')
('Santa', 'Santa@np.org')
>>来自email.utils import parseaddr
>>>parseaddr(“‘圣诞老人’”)
(‘圣诞老人’,’Santa@np.org')
那么:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('"Sammy Davis, Jr." <samuel.david@gmail.com>', 4) ])
>>> 
>>> from email.utils import parseaddr
>>> [parseaddr(s)[1] for s in d.keys() if '@' in parseaddr(s)[1]]
['sntp@hotmail.com', 'samuel.david@gmail.com', 'sdusa@yahoo.com']
d=dict([('10:04:14',1),('3',6),('Thu',6),('19:51:21',1), 例如,('2008',27),('From',27),('11:35:08',1),('5',1), ... ('sntp@hotmail.com,3),('Jan',27),('15:46:24',1),('14:50:18', ... 1), ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31', ... 1), ('10:38:42', 1), ('sdusa@yahoo.com', 1), …(“‘小萨米·戴维斯’”,4)]) >>> >>>从email.utils导入parseaddr >>>[parseaddr[1]用于d.keys()中的s,如果parseaddr[1]中的“@” ['sntp@hotmail.com“塞缪尔。david@gmail.com', 'sdusa@yahoo.com']
注意:
parseaddr
仅分隔有效但完整的RFC822地址的部分;它不会验证它是否为真实地址。

假设:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('samuel.david@gmail.com', 4) ])
如果地址是您显示的类型,您可以在按键上使用
filter

>>> list(filter(lambda s: '@' in s, d.keys()))
['sdusa@yahoo.com', 'samuel.david@gmail.com', 'sntp@hotmail.com']
但是,如果您可能有更完整的字符串表示
“Comment”的RFC822电子邮件地址,以将注释(或真实姓名)与实际地址分开:

>>> from email.utils import parseaddr
>>> parseaddr('"Santa" <Santa@np.org>')
('Santa', 'Santa@np.org')
>>来自email.utils import parseaddr
>>>parseaddr(“‘圣诞老人’”)
(‘圣诞老人’,’Santa@np.org')
那么:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('"Sammy Davis, Jr." <samuel.david@gmail.com>', 4) ])
>>> 
>>> from email.utils import parseaddr
>>> [parseaddr(s)[1] for s in d.keys() if '@' in parseaddr(s)[1]]
['sntp@hotmail.com', 'samuel.david@gmail.com', 'sdusa@yahoo.com']
d=dict([('10:04:14',1),('3',6),('Thu',6),('19:51:21',1), 例如,('2008',27),('From',27),('11:35:08',1),('5',1), ... ('sntp@hotmail.com,3),('Jan',27),('15:46:24',1),('14:50:18', ... 1), ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31', ... 1), ('10:38:42', 1), ('sdusa@yahoo.com', 1), …(“‘小萨米·戴维斯’”,4)]) >>> >>>从email.utils导入parseaddr >>>[parseaddr[1]用于d.keys()中的s,如果parseaddr[1]中的“@” ['sntp@hotmail.com“塞缪尔。david@gmail.com', 'sdusa@yahoo.com']
注意:
parseaddr
仅分隔有效但完整的RFC822地址的部分;它不会验证它是否为真实地址。

假设:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('samuel.david@gmail.com', 4) ])
如果地址是您显示的类型,您可以在按键上使用
filter

>>> list(filter(lambda s: '@' in s, d.keys()))
['sdusa@yahoo.com', 'samuel.david@gmail.com', 'sntp@hotmail.com']
但是,如果您可能有更完整的字符串表示
“Comment”的RFC822电子邮件地址,以将注释(或真实姓名)与实际地址分开:

>>> from email.utils import parseaddr
>>> parseaddr('"Santa" <Santa@np.org>')
('Santa', 'Santa@np.org')
>>来自email.utils import parseaddr
>>>parseaddr(“‘圣诞老人’”)
(‘圣诞老人’,’Santa@np.org')
那么:

>>> d=dict([('10:04:14', 1), ('3', 6), ('Thu', 6), ('19:51:21', 1),
... ('2008',27),  ('From', 27), ('11:35:08', 1), ('5', 1),
... ('sntp@hotmail.com', 3), ('Jan', 27), ('15:46:24', 1), ('14:50:18',
... 1),  ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31',
... 1),  ('10:38:42', 1), ('sdusa@yahoo.com', 1),
... ('"Sammy Davis, Jr." <samuel.david@gmail.com>', 4) ])
>>> 
>>> from email.utils import parseaddr
>>> [parseaddr(s)[1] for s in d.keys() if '@' in parseaddr(s)[1]]
['sntp@hotmail.com', 'samuel.david@gmail.com', 'sdusa@yahoo.com']
d=dict([('10:04:14',1),('3',6),('Thu',6),('19:51:21',1), 例如,('2008',27),('From',27),('11:35:08',1),('5',1), ... ('sntp@hotmail.com,3),('Jan',27),('15:46:24',1),('14:50:18', ... 1), ('11:37:30', 1), ('18:10:48', 1), ('17:07:00', 1), ('09:05:31', ... 1), ('10:38:42', 1), ('sdusa@yahoo.com', 1), …(“‘小萨米·戴维斯’”,4)]) >>> >>>从email.utils导入parseaddr >>>[parseaddr[1]用于d.keys()中的s,如果parseaddr[1]中的“@” ['sntp@hotmail.com“塞缪尔。david@gmail.com', 'sdusa@yahoo.com']

注意:
parseaddr
仅分隔有效但完整的RFC822地址的部分;它不能验证它是否是真实地址。

精彩、简短、简单。成功了。我喜欢这个开发者社区,相信他们的专业知识。那是大脑冻结,无法思考。你帮我节省了很多时间。我希望与您保持联系,寻求专业建议。万分感谢。才华横溢,简洁明了。成功了。我喜欢这个开发者社区,相信他们的专业知识。那是大脑冻结,无法思考。你帮我节省了很多时间。我希望与您保持联系,寻求专业建议。A.