@SymerDiff

Как добавить несколько словарей в CSV (Python)?

Преобразую список в словарь с помощью класса Counter, нужно вывести всё в CSV? Вот код, который есть:
list1 = ['from=<test@yandex.ru>', 'from=<test2@yandex.ru>', 'tes23@yandex.ru', 'test@yandex.ru', ]
list2 = ['to=<test@yandex.ru>', 'to=<test2@yandex.ru>', 'to=<tes23@yandex.ru>',  ]
countList1 = Counter(list1) 
countList2 = Counter(list2)

with open('outputTest.csv', 'w') as csvFile:
    writer = csv.writer(csvFile)
    header = ['email_from', 'quantity' 'email_to', 'quantity']
    writer.writerow(header)
    for item in countlister1:
        writer.writerow((item, counLister1[item]))  # Только для одного словаря

На выходе получается таблица (email, 10)
Нужно добавить в таблицу данные из 3х словарей. Как это можно сделать лучше всего? Спасибо!
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
@o5a
list1 = ['from=<test@yandex.ru>', 'from=<test2@yandex.ru>', 'tes23@yandex.ru', 'test@yandex.ru', ]
list2 = ['to=<test@yandex.ru>', 'to=<test2@yandex.ru>', 'to=<tes23@yandex.ru>',  ]
# сформировать сколько нужно словарей по списку
counters = [Counter(x) for x in [list1, list2]]

with open('outputTest.csv', 'w') as csvFile:
    writer = csv.writer(csvFile)
    header = ['email_from', 'quantity' 'email_to', 'quantity']
    writer.writerow(header)
    for counter in counters:
        for item, cnt in counter.items():
            writer.writerow((item, cnt))

Или можно изначально не создавать Counter, а делать уже внутри нижнего цикла.
Или же можно все списки изначально сложить в один и сделать все через единственный Counter.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы