В Python мы можем сохранить или преобразовать словарь Python в CSV, используя csv.DictWriter(), pandas.DataFrame.to_csv(), file.write(byte) и другие.

В Python существует несколько способов конвертировать или сохранять словарь Python в CSV. Давайте обсудим каждый из этих методов более подробно.

Содержание

С помощью DictWriter()

Основная задача преобразования словаря Python в файл CSV — чтение данных словаря:

  • А класс DictWriter(), который является частью модуля csv, помогает читать и записывать данные словаря в строки.
  • После этого мы можем использовать метод writerows() для записи данных словаря в файл csv.

Давайте на примере и проверим, как преобразовать словарь в файл CSV.

Исходный код:

import csv
  
employee_info = ['emp_id', 'emp_name', 'skills']
  
new_dict = [
{'emp_id': 456, 'emp_name': 'George', 'skills': 'Python'},
{'emp_id': 892, 'emp_name': 'Adam', 'skills': 'Java'},
{'emp_id': 178, 'emp_name': 'Gilchrist', 'skills': 'Mongo db'},
{'emp_id': 155, 'emp_name': 'Elon', 'skills': 'Sql'},
{'emp_id': 299, 'emp_name': 'Mask', 'skills': 'Ruby'},
]
  
with open('test4.csv', 'w') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames = employee_info)
    writer.writeheader()
    writer.writerows(new_dict)
  • Здесь мы можем определить список «employee_info», и этот список будет использоваться в качестве имен столбцов.
  • Теперь, если мы хотим открыть файл в режиме записи, мы можем использовать функцию open(). А чтобы записать первую строку в CSV-файл, мы используем метод writeheader().
  • В этом примере метод writerows() предназначен для записи аргумента строки в файловый объект средства записи.

Используя цикл for

Далее давайте обсудим другой способ сохранить словарь Python в CSV с использованием цикла For в Python.

Вот пример, в котором мы преобразуем словарь my_dictionary в файл test6.csv.

import csv

my_dictionary = {'values': 678, 'values2': 167, 'values6': 998}

with open('test6.csv', 'w') as f:
    for key in my_dictionary.keys():
        f.write("%s, %s\n" %(key, my_dictionary[key]))

В приведенном выше коде сначала мы определим словарь и воспользуемся функцией open() для открытия файла. А чтобы записать данные CSV в файл, мы можем использовать концепцию dict.keys().

С помощью Pandas

  • Давайте посмотрим, как преобразовать словарь Python в CSV с помощью модуля pandas.
  • В этом примере мы объявим словарь и преобразуем его в фрейм данных, после чего преобразуем его в файл CSV с помощью функции to_csv().

Исходный код:

import pandas as pd
new_my_dict = [
{'a': 15, 'n': 81, 'p': 177},
{'a': 18, 'n': 24, 'p': 190},
{'a': 19, 'n': 20, 'p': 156},
]
df = pd.DataFrame.from_dict(new_my_dict) 
df.to_csv(r'test8.csv', index=False, header=True)
  • В приведенном выше коде нам нужно импортировать модуль pandas, а затем создать словарь new_my_dict.
  • Здесь мы также конвертируем словарь в DataFrame, используя pd.DataFrame.from_dict().
  • Далее мы можем использовать метод to_csv() и передать индекс и заголовок в качестве параметра. Однако эти параметры являются необязательными и передают индекс как «ложь», а заголовок — как «истина».

С использованием writerows()

Сначала в этом методе мы создадим CSV-файл, используя метод open() в Python. После этого мы определяем словарь и используем цикл for для перебора пары ключ-значение словаря и записи ее в CSV-файл с помощью writerows().

Исходный код:

import csv
new_path = open("mytest.csv", "w")
file_dictionary = {"oliva":199,"james":145,"potter":187}

z = csv.writer(new_path)
for new_k, new_v in file_dictionary.items():
    z.writerow([new_k, new_v])

new_path.close()

Примечание. В переменной «new_path» вам необходимо сохранить свой собственный файл CSV.

Сохранить словарь в CSV с заголовком

В этом разделе мы поймем, как преобразовать словарь в CSV с заголовком. Для этой задачи мы будем использовать метод DictWriter(), который используется для вставки данных в файл CSV.

Пример:

import csv

new_dictionary = { "Australia" : 456, "Germany" : 2678, "China" : 1890,"Japan":1667}
with open('maintest.csv', 'w', newline='') as csvfile:
    header_key = ['Country', 'Value']
    new_val = csv.DictWriter(csvfile, fieldnames=header_key)

    new_val.writeheader()
    for new_k in new_dictionary:
        new_val.writerow({'Country': new_k, 'Value': new_dictionary[new_k]})
  • В этом примере мы определим словарь с именем new_dictionary, который будет использоваться в качестве значений.
  • А для раздела заголовка мы определили список header_key.
  • После этого мы используем функцию open(), чтобы открыть файл, и использовали концепцию метода dictwriterheader() для передачи ключевого слова имени поля в качестве аргумента.
Добавить комментарий