Php 在Python中使用IMAPClient获取电子邮件-需要将数据存储在列表中

Php 在Python中使用IMAPClient获取电子邮件-需要将数据存储在列表中,php,python,email,dictionary,imapclient,Php,Python,Email,Dictionary,Imapclient,祝大家新年快乐:) 我构建了一个web表单,新员工可以在其中输入数据并将其发送到一个电子邮件地址,在那里我可以收到来自PHP的大约20“组”数据 Vorname: $firstname Nachname: $lastname 等等 现在,当我使用IMAPClient使用python获取电子邮件时,我删除了主消息前后的MIME字符,剩下的字符串集如下: "\r\nNachname: Doe\r\nVorname: John\r\nStraße: Bahnhofstraße 3a\r\nPLZ

祝大家新年快乐:)

我构建了一个web表单,新员工可以在其中输入数据并将其发送到一个电子邮件地址,在那里我可以收到来自PHP的大约20“组”数据

Vorname: $firstname  
Nachname: $lastname
等等

现在,当我使用IMAPClient使用python获取电子邮件时,我删除了主消息前后的MIME字符,剩下的字符串集如下:

"\r\nNachname: Doe\r\nVorname: John\r\nStraße: Bahnhofstraße 3a\r\nPLZ: 67346\r\nOrt: Speyer\r\nGeschlecht: maennlich\r\nGeburtsdatum: 10.07.1983\r\nGeburtsname: \r\nGeburtsort: Speyer\r\nFamilienstand: ledig\r\nNationalität: deutsch\r\nKonfession: katholisch\r\nTelefon_1: 017666666666\r\nTelefon_2: \r\nHandy: \r\nE-Mail: mail@mail.com\r\nFax: \r\nQualifikation: hwfach\r\nAbschluss: fachhauswirtsch\r\nAufmerksam_durch: pdienstleist, zeitung\r\n"
我试图
.replace(“\r”,”)
\n
但键和值似乎已关闭

想知道你们怎么解决这个问题吗

我有一个带代码内词典的工作脚本,所以现在唯一缺少的就是从电子邮件中摘录词典的方法

希望有人能帮助我


干杯

如果您的目标是将此字符串转换为字典,您可以执行以下操作:

首先按
\r\n
将其拆分(其中
x
是字符串)

现在,您可以使用dict理解创建字典

_dct = {i.split(":")[0].strip():i.split(":")[1].strip() for i in k_vs if i}
如果希望更详细,for循环也会做同样的事情:

_dct = {}
for i in k_vs:
    if i:
        key, value = i.split(":")
        _dct.update({key: value})
演示:


你能把它翻译成英语吗?哪些是键,哪些是值?抱歉-看起来是这样的:"\r\nLastName:Doe\r\nFirstName:John\r\n地址:Bahnhofstraße 3a\r\nZIP:67346\r\n城市:斯派尔\r\nSex:maennlich\r\nDOB:10.07.1983\r\nBirthname:\r\n出生地:斯派尔\r\nMaitalstatus:ledig\r\n国家:德国\r\n宗教:katholisch\r\nPhone\n 1:0176666666\r\nPhone\n意大利:mail@mail.com\r\n传真:\r\n取消资格:hwfach\r\n评估:fachhauswirtsch\r\n结果:Pdiensleist,zeitung\r\n“因此,键应该是LastName、FirstName、Address、ZIP、City、DOB等。这些值是用户输入的数据,如Doe、John、Bahnhofstraß我认为@karthikr给出了正确的解决方案。为什么在_dct中加下划线?这是一个局部变量名。你喜欢用什么就用什么。。我喜欢dct,我知道。我只是好奇你是否有一些特殊的理由:)我想你需要涵盖第一个和最后一个元素。第一个和最后一个元素将是空字符串?哦,哇。非常感谢karthikr!!成功了。MYGz声明的空字符串是可能的,因为某些字段(如Fax、Birthname)是可选的:)Awesome
_dct = {}
for i in k_vs:
    if i:
        key, value = i.split(":")
        _dct.update({key: value})
>>> x = "\r\nNachname: Doe\r\nVorname: John\r\nStraße: Bahnhofstraße 3a\r\nPLZ: 67346\r\nOrt: Speyer\r\nGeschlecht: maennlich\r\nGeburtsdatum: 10.07.1983\r\nGeburtsname: \r\nGeburtsort: Speyer\r\nFamilienstand: ledig\r\nNationalität: deutsch\r\nKonfession: katholisch\r\nTelefon_1: 017666666666\r\nTelefon_2: \r\nHandy: \r\nE-Mail: mail@mail.com\r\nFax: \r\nQualifikation: hwfach\r\nAbschluss: fachhauswirtsch\r\nAufmerksam_durch: pdienstleist, zeitung\r\n"
>>> 
>>> y = x.split("\r\n")
>>> z = {i.split(":")[0].strip():i.split(":")[1].strip() for i in y if i}
>>> z
{'Geburtsdatum': '10.07.1983', 'Familienstand': 'ledig', 'Konfession': 'katholisch', 'Aufmerksam_durch': 'pdienstleist, zeitung', 'Ort': 'Speyer', 'Telefon_2': '', 'Vorname': 'John', 'PLZ': '67346', 'Geburtsname': '', 'Nationalit\xc3\xa4t': 'deutsch', 'E-Mail': 'mail@mail.com', 'Nachname': 'Doe', 'Telefon_1': '017666666666', 'Qualifikation': 'hwfach', 'Geburtsort': 'Speyer', 'Geschlecht': 'maennlich', 'Abschluss': 'fachhauswirtsch', 'Handy': '', 'Stra\xc3\x9fe': 'Bahnhofstra\xc3\x9fe 3a', 'Fax': ''}
>>>