尝试理解如何动态创建嵌套字典。理想情况下,我的字典应该类似于:
mydict = { 'Message 114861156': { 'email': ['user1@domain.com', 'user2@domain.com'] }, { 'status': 'Queued mail for delivery' }}
这是我目前的进展:
这里是我目前的进展:
sampledata = "Message 114861156 to user1@domain.com user2@domain.com [InternalId=260927844] Queued mail for delivery'."
makedict(sampledata)
def makedict(results):
newdict = {}
for item in results:
msgid = re.search(r'Message \d+', item)
msgid = msgid.group()
newdict[msgid]['emails'] = re.findall(r'\w+@\w+\.\w+', item)
newdict[msgid]['status'] = re.findall(r'Queued mail for delivery', item)
输出如下:
Traceback (most recent call last):
File "wildfires.py", line 57, in <module>
striptheshit(q_result)
File "wildfires.py", line 47, in striptheshit
newdict[msgid]['emails'] = re.findall(r'\w+@\w+\.\w+', item)
KeyError: 'Message 114861156'
你如何动态生成一个类似这样的嵌套字典?
r'\w+@\w+\.\w+'
更多的模式。如果您不在受限制的环境中(所有电子邮件地址都在某个公司域中),那么该正则表达式就无效了。您可以在此处阅读更多信息(其中包括一个“基本足够”的正则表达式和一个符合RFC标准的疯狂正则表达式)。 - ShadowRanger