CSV (значения, разделенные запятыми) — наиболее распространенный формат файлов, широко поддерживаемый многими платформами и приложениями. Используйте модуль CSV из стандартной библиотеки Python. Самый простой способ — открыть CSV-файл в режиме ‘w’ с помощью функции open() и записать пары ключ-значение через запятую.

Преобразование словаря Python в CSV
Чтобы преобразовать и записать словарь в csv в Python, используйте метод csv.DictWriter(). Метод DictWriter() создает объект, который работает как обычный модуль записи, но сопоставляет словари с выходными строками.
- Во-первых, нам нужно импортировать модуль CSV.
|
1 |
import csv |
- Далее мы определим словарь.
|
1 2 3 |
import csv dict = {'name': 'krunal', 'age': 26, 'education': 'Engineering'} |
- Теперь мы используем функцию open(), чтобы открыть файл в режиме записи, и используем метод Dictionary.keys(), чтобы записать данные CSV в файл.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 |
# app.py import csv dict = {'name': 'krunal', 'age': 26, 'education': 'Engineering'} with open('data.csv', 'w') as f: for key in dict.keys(): f.write("%s, %s\n" %(key, dict[key])) |
Вывод:
|
1 2 3 |
name, krunal age, 26 education, Engineering |
Модуль CSV содержит метод DictWriter, которому для записи требуется имя файла CSV, и объект списка, содержащий имена полей.
Метод writeheader() записывает первую строку в файл CSV в виде имен полей. Последующий цикл for записывает каждую строку в форме CSV в файл CSV.
Дополнительные примеры
Давайте запишем больше данных в файл CSV.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# app.py import csv csv_columns = ['Service', 'ShowName', 'Seasons'] dict = [ {'Service': 'Netflix', 'ShowName': 'Stranger Things', 'Seasons': 3}, {'Service': 'Disney+', 'ShowName': 'The Mandalorian', 'Seasons': 1}, {'Service': 'Hulu', 'ShowName': 'Simpsons', 'Seasons': 31}, {'Service': 'Prime Video', 'ShowName': 'Fleabag', 'Seasons': 2}, {'Service': 'AppleTV+', 'ShowName': 'The Morning Show', 'Seasons': 1}, ] csv_file = "data.csv" try: with open(csv_file, 'w') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=csv_columns) writer.writeheader() for data in dict: writer.writerow(data) except IOError: print("I/O error") |
Вывод:
|
1 2 3 4 5 6 |
Service,ShowName,Seasons Netflix,Stranger Things,3 Disney+,The Mandalorian,1 Hulu,Simpsons,31 Prime Video,Fleabag,2 AppleTV+,The Morning Show,1 |
Мы используем DictWriter.writerow() для записи одной строки. DictWriter.writeheader() — если вам нужен заголовок для вашего CSV-файла.
Кроме того, мы использовали оператор with для открытия файлов. Он не только более питонический и читаемый, но и обрабатывает закрытие для вас, даже когда возникают исключения.
Итак, в приведенном выше примере мы использовали следующие функции Python CSV.
Python CSV.DictWriter()
Она создает объект, который работает как обычный модуль записи, но сопоставляет словари с выходными строками. Параметр fieldnames представляет собой последовательность ключей, определяющих порядок, в котором значения из словаря, переданного методу writerow(), записываются в файл f.
Необязательный параметр restval указывает значение, которое должно быть записано в словарь без ключа в именах полей.
Если словарь, переданный методу writerow(), содержит ключ, не найденный в именах полей, необязательный параметр extrasaction указывает, какое действие следует предпринять.
Если установлено значение «raise», повышается значение по умолчанию, ValueError. Если установлено значение «ignore», лишние значения в словаре игнорируются. Любые другие необязательные или ключевые аргументы передаются базовому экземпляру модуля записи.
DictWriter.writeheader()
Эта функция используется для записи строки с именами полей (как указано в конструкторе) в объект файла средства записи, отформатированный в соответствии с текущим диалектом. Возвращает возвращаемое значение вызова csvwriter.writerow(), используемое для внутренних целей.
csvwriter.writerow(row)
Функция состоит в том, чтобы записать параметр строки в файловый объект средства записи, отформатированный в соответствии с текущим диалектом. Возвращаемое значение вызова метода записи базового файлового объекта.
Python csvwriter.writerows(rows)
Эта функция записывает все элементы в строках (итерация объектов строк, как описано выше) в файловый объект средства записи, отформатированный в соответствии с текущим диалектом.
