1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

как записать словарь в csv?

Тема в разделе "python", создана пользователем searchengines, 4 июн 2019.


Поделиться в соц сетях

  1. searchengines

    searchengines Administrator

    Регистрация:
    5 янв 2019
    Сообщения:
    1.666
    Симпатии:
    2
    Баллы:
    38
    всем привет! Небольшая проблемка. Есть csv, его нужно считать и данные с определённых полей записать в другой csv. Исходный файл я зачитал в словарь, но при записи в конечный файл записывается только последня строка исходго файла, но во все строки где должны быть другие данные. Немогу понять что не так.

    import csv

    d = {}

    with open("dhl.csv", "r") as f:
    reader = csv.DictReader(f, delimiter = ";")
    for row in reader:
    d.update(row)

    with open("DHL-VLS-Export.csv", "w", newline = "") as output:
    names = ['Sendungsnummer', 'Sendungsdatum', 'Absender Name 1', 'Absender Name 2', 'Absender Name 3', 'Absender Straße', 'Absender Hausnummer', 'Absender PLZ', 'Absender Ort', 'Absender Provinz', 'Absender Land', 'Absenderreferenz', 'Absender E-Mail-Adresse', 'Absender Telefonnummer', 'Empfänger Name 1', 'Empfänger Name 2 / Postnummer', 'Empfänger Name 3', 'Empfänger Straße', 'Empfänger Hausnummer', 'Empfänger PLZ', 'Empfänger Ort', 'Empfänger Provinz', 'Empfänger Land', 'Empfängerreferenz', 'Empfänger E-Mail-Adresse', 'Empfänger Telefonnummer', 'Gewicht', 'Länge', 'Breite', 'Höhe', 'Produkt- und Servicedetails', 'Retourenempfänger Name 1', 'Retourenempfänger Name 2', 'Retourenempfänger Name 3', 'Retourenempfänger Straße', 'Retourenempfänger Hausnummer', 'Sendungsreferenz', 'Retourenempfänger Ort', 'Retourenempfänger Provinz', 'Retourenempfänger Land', 'Retourenrempfänger E-Mail-Adresse', 'Retourenempfänger Telefonnummer', 'Retouren-Abrechnungsnummer', 'Abrechnungsnummer', 'Service - Versandbestätigung - E-Mail Text-Vorlage', 'Service - Versandbestätigung - E-Mail-Adresse', 'Service - Nachnahme - Kontoreferenz', 'Service - Nachnahme - Betrag', 'Service - Nachnahme - IBAN', 'Service - Nachnahme - BIC', 'Service - Nachnahme - Zahlungsempfänger', 'Service - Nachnahme - Bankname', 'Service - Nachnahme - Verwendungszweck 1', 'Service - Nachnahme - Verwendungszweck 2', 'Service - Transportversicherung - Betrag', 'Service - Weltpaket - Vorausverfügungstyp', 'Service - DHL Europaket - Frankaturtyp', 'Sendungsdokumente - Ausfuhranmeldung', 'Sendungsdokumente - Rechnungsnummer', 'Sendungsdokumente - Genehmigungsnummer', 'Sendungsdokumente - Bescheinigungsnummer', 'Sendungsdokumente - Sendungsart', 'Sendungsdokumente - Beschreibung', 'Sendungsdokumente - Entgelte', 'Sendungsdokumente - Gesamtnettogewicht', 'Sendungsdokumente - Beschreibung (WP1)', 'Sendungsdokumente - Menge (WP1)', 'Sendungsdokumente - Zollwert (WP1)', 'Sendungsdokumente - Ursprungsland (WP1)', 'Sendungsdokumente - Zolltarifnummer (WP1)', 'Sendungsdokumente - Gewicht (WP1)', 'Sendungsdokumente - Beschreibung (WP2)', 'Sendungsdokumente - Menge (WP2)', 'Sendungsdokumente - Zollwert (WP2)', 'Sendungsdokumente - Ursprungsland (WP2)', 'Sendungsdokumente - Zolltarifnummer (WP2)', 'Sendungsdokumente - Gewicht (WP2)', 'Sendungsdokumente - Beschreibung (WP3)', 'Sendungsdokumente - Menge (WP3)', 'Sendungsdokumente - Zollwert (WP3)', 'Sendungsdokumente - Ursprungsland (WP3)', 'Sendungsdokumente - Zolltarifnummer (WP3)', 'Sendungsdokumente - Gewicht (WP3)', 'Sendungsdokumente - Beschreibung (WP4)', 'Sendungsdokumente - Menge (WP4)', 'Sendungsdokumente - Zollwert (WP4)', 'Sendungsdokumente - Ursprungsland (WP4)', 'Sendungsdokumente - Zolltarifnummer (WP4)', 'Sendungsdokumente - Gewicht (WP4)', 'Sendungsdokumente - Beschreibung (WP5)', 'Sendungsdokumente - Menge (WP5)', 'Sendungsdokumente - Zollwert (WP5)', 'Sendungsdokumente - Ursprungsland (WP5)', 'Sendungsdokumente - Zolltarifnummer (WP5)', 'Sendungsdokumente - Gewicht (WP5)', 'Sendungsdokumente - Beschreibung (WP6)', 'Sendungsdokumente - Menge (WP6)', 'Sendungsdokumente - Zollwert (WP6)', 'Sendungsdokumente - Ursprungsland (WP6)', 'Sendungsdokumente - Zolltarifnummer (WP6)', 'Sendungsdokumente - Gewicht (WP6)', 'Sendungsnummer', 'Sendungsreferenz (Retoure)', 'Absender Adresszusatz 1', 'Absender Adresszusatz 2', 'Absender Zustellinformation', 'Absender Ansprechpartner', 'Empfänger Adresszusatz 1', 'Empfänger Adresszusatz 2', 'Empfänger Zustellinformation', 'Empfänger Ansprechpartner', 'Retourenempfänger Adresszusatz 1', 'Retourenempfänger Adresszusatz 2', 'Retourenempfänger Zustellinformation', 'Retourenempfänger Ansprechpartner', 'Service - Wunschnachbar - Details', 'Service - Wunschort - Details', 'Service - Alterssichtprüfung - Altersgrenze', 'Service - Sendungshandling', 'Service - beliebiger Hinweistext', 'Service - Zustelldatum', 'Service - Zustellzeitfenster', 'Service - Vorausverfügung', 'Sendungsdokumente - Einlieferungsstelle', 'Sendungsnummer (Retoure)']
    writer = csv.DictWriter(output, delimiter = ";", fieldnames = names)
    writer.writeheader()
    for i in d.items():
    writer.writerow({

    'Sendungsnummer':d["TRACKINGNR"],
    'Empfänger Name 1': d["EMPF_NAME1"],
    'Sendungsdatum': d["AUSGANGDATETIME"],
    'Absender Name 1': "TS Autoteiel UG",
    'Absender Name 2': "(haftungsbeschränkt)",
    'Absender Straße': "Scheideweg",
    'Absender Hausnummer': "42",
    'Absender PLZ': "26121",
    'Absender Ort': "Oldenburg",
    'Absender Land': "DEU",
    'Absender E-Mail-Adresse': "info@ts-autoteile.com",
    'Absender Telefonnummer': "0176-72165481",
    'Empfänger Name 1': d["EMPF_NAME1"],
    'Empfänger Name 2 / Postnummer': d["EMPF_NAME2"],
    'Empfänger Name 3': d["EMPF_NAME3"],
    'Empfänger Straße': d["EMPF_STRASSE"],
    'Empfänger PLZ': d["EMPF_PLZ"],
    'Empfänger Ort': d["EMPF_ORT"],
    'Empfänger Land': "DEU",
    'Produkt- und Servicedetails': "V01PAK",
    'Sendungsreferenz': d["REFERENZNR"],
    'Abrechnungsnummer': "52052678290101",
    'Sendungsnummer': d["TRACKINGNR"]})
     

Поделиться этой страницей