Счастливого Нового Года всем вам 🙂
Я создал веб-форму, где новые сотрудники вводят свои данные и отправляют их на адрес электронной почты, где я получаю около 20 «наборов» данных, поступающих из PHP.
Vorname: $firstname
Nachname: $lastname
и так далее.
Теперь, когда я получаю электронное письмо с помощью python, используя IMAPClient, я удаляю символы 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: [email protected]\r\nFax: \r\nQualifikation: hwfach\r\nAbschluss: fachhauswirtsch\r\nAufmerksam_durch: pdienstleist, zeitung\r\n"
Я пытался .replace("\r","")
а также \n
но ключ и значение, кажется, выключены.
Хотите знать, как вы, ребята, решили бы эту проблему?
У меня есть рабочий скрипт со встроенным словарём, так что единственное, чего сейчас не хватает, — это способ извлечь словарь из письма.
Надеюсь, кто-нибудь может мне помочь.
ура
Что ж, если ваша цель — преобразовать эту строку в словарь, вы можете сделать что-то вроде этого:
Сначала разделите это на \r\n
(где x
это строка)
k_vs = x.split("\r\n")
Теперь вы можете использовать словесное понимание для создания словаря
_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})
DEMO:
>>> 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: [email protected]\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': '[email protected]', 'Nachname': 'Doe', 'Telefon_1': '017666666666', 'Qualifikation': 'hwfach', 'Geburtsort': 'Speyer', 'Geschlecht': 'maennlich', 'Abschluss': 'fachhauswirtsch', 'Handy': '', 'Stra\xc3\x9fe': 'Bahnhofstra\xc3\x9fe 3a', 'Fax': ''}
>>>
Других решений пока нет …