DictReader () используется для чтения файла csv в формате объекта dict. Давайте обсудим, как использовать метод DictReader () в Python.
Прежде чем мы начнем основной курс этой статьи, давайте сначала разберемся, что такое CSV-файл.
Что такое файл CSV (значения, разделенные запятыми) ?:
CSV — это файл, в котором данные представлены в виде разделенных запятыми или других разделенных пользователем разделителей. Эти файлы имеют расширение csv. Этот CSV-файл в основном используется в аналитике данных. Помфимо анализа данных, файл csv также используется в приложении электронной коммерции, поскольку его очень легко обрабатывать на всех языках программирования.
1. Метод DictReader () для чтения имени конкретного столбца:
CSV-файл. Ниже представлен файл test.csv. Этот csv файл мы будем читать из DictReader (). В этой программе мы не собираемся читать все данные файла CSV, а только столбец Месяц, как показано ниже:
«Month», «1958», «1959», «1960»
«JAN», 340, 360, 417
«FEB», 318, 342, 391
«MAR», 362, 406, 419
«APR», 348, 396, 461
«MAY», 363, 420, 472
«JUN», 435, 472, 535
«JUL», 491, 548, 622
«AUG», 505, 559, 606
«SEP», 404, 463, 508
«OCT», 359, 407, 461
«NOV», 310, 362, 390
«DEC», 337, 405, 432
Код Python:
import csv
with open(‘test.csv’) as f:
DictReader_obj = csv.DictReader(f)
for item in DictReader_obj:
print(item[‘Month’])
Вывод:
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
NOV
DEC
Строка 1: Импортируем модуль csv.
Строка 2–5 : мы открываем файл test.csv как f, а затем создаем объект DictReader. Затем объект (DictReader_obj) отображает все данные столбца Месяц.
2. Метод DictReader () для чтения CSV-файла как словаря
Теперь мы посмотрим, как мы можем читать csv как формат словаря. Мы используем тот же файл test.csv, что и раньше. Пример этого метода приведен ниже:
import csv
with open(‘test.csv’) as f:
DictReader_obj = csv.DictReader(f)
for item in DictReader_obj:
print(dict(item))
Вывод:
{‘Month’: ‘JAN’, ‘ «1958»‘: ‘ 340’, ‘ «1959»‘: ‘ 360’, ‘ «1960»‘: ‘ 417’}
{‘Month’: ‘FEB’, ‘ «1958»‘: ‘ 318’, ‘ «1959»‘: ‘ 342’, ‘ «1960»‘: ‘ 391’}
{‘Month’: ‘MAR’, ‘ «1958»‘: ‘ 362’, ‘ «1959»‘: ‘ 406’, ‘ «1960»‘: ‘ 419’}
{‘Month’: ‘APR’, ‘ «1958»‘: ‘ 348’, ‘ «1959»‘: ‘ 396’, ‘ «1960»‘: ‘ 461’}
{‘Month’: ‘MAY’, ‘ «1958»‘: ‘ 363’, ‘ «1959»‘: ‘ 420’, ‘ «1960»‘: ‘ 472’}
{‘Month’: ‘JUN’, ‘ «1958»‘: ‘ 435’, ‘ «1959»‘: ‘ 472’, ‘ «1960»‘: ‘ 535’}
{‘Month’: ‘JUL’, ‘ «1958»‘: ‘ 491’, ‘ «1959»‘: ‘ 548’, ‘ «1960»‘: ‘ 622’}
{‘Month’: ‘AUG’, ‘ «1958»‘: ‘ 505’, ‘ «1959»‘: ‘ 559’, ‘ «1960»‘: ‘ 606’}
{‘Month’: ‘SEP’, ‘ «1958»‘: ‘ 404’, ‘ «1959»‘: ‘ 463’, ‘ «1960»‘: ‘ 508’}
{‘Month’: ‘OCT’, ‘ «1958»‘: ‘ 359’, ‘ «1959»‘: ‘ 407’, ‘ «1960»‘: ‘ 461’}
{‘Month’: ‘NOV’, ‘ «1958»‘: ‘ 310’, ‘ «1959»‘: ‘ 362’, ‘ «1960»‘: ‘ 390’}
{‘Month’: ‘DEC’, ‘ «1958»‘: ‘ 337’, ‘ «1959»‘: ‘ 405’, ‘ «1960»‘: ‘ 432’}
Строка 1: Импортируем модуль csv.
Строка 2–5 : мы открываем файл test.csv как f, а затем создаем объект DictReader. Объект будет продолжать итерацию до данных. Csv.DictReader () вернет каждую строку типа OrederedDict, поэтому мы преобразуем каждую строку типа OrderedDict в dict, используя метод приведения типа. Затем средство чтения объектов отображает все данные в формате словаря, как показано в выходных данных выше.
Но если вы используете последнюю версию Python, преобразование типа dict не требуется, поскольку мы используем приведение типов в строке номер 5 приведенного выше примера программы.
3. Метод DictWriter ()
Метод DictWriter является частью метода DictReader, где он помогает записывать данные формата словаря в файл csv. Итак, в этой программе мы увидим, как мы можем записать данные словаря в csv.
import csv
with open(‘output.csv’,«w», newline=«», encoding=«utf-8-sig») as outfile:
writer = csv.DictWriter(outfile, [«FirstName», «LastName»])
writer.writeheader()
new_row = {«FirstName»: «Linux», «LastName»: «Hint»}
writer.writerow(new_row)
Выход:
FirstName,LastName
Linux,Hint
Строки с 3 по 7: Мы открываем файл output.csv в режиме записи (’w’). Затем мы передаем заголовок csv в виде списка в DictWriter при создании самого объекта. Мы должны сообщить объекту имена столбцов csv перед записью в csv; иначе это вызовет ошибку, потому что тогда объект не сможет понять ключевые имена словаря. В строке 6 мы создали один объект dict и передали его объекту writerow для записи в файл csv.
Вывод показывает, что наши данные успешно записаны в файл csv.
4. Метод DictWriter () для записи списка данных словаря в csv
В этой программе мы увидим, как мы можем записать список данных словаря в csv. В предыдущем примере мы записали в csv только отдельные словарные данные для понимания концепции. Но в повседневной жизни мы пишем csv с огромными данными. Итак, мы увидим этот сценарий в этом примере.
import csv
with open(‘output.csv’, ‘w’) as csvfile:
col = [‘FirstName’, ‘LastName’, ‘GradePoint’]
writer = csv.DictWriter(csvfile, fieldnames=col)
writer.writeheader()
writer.writerows([{‘GradePoint’: ‘B’, ‘FirstName’: ‘Jeorge’, ‘LastName’: ‘Belly’},
{‘GradePoint’: ‘A’, ‘FirstName’: ‘Krishna’, ‘LastName’: ‘Kumar’},
{‘GradePoint’: ‘C’, ‘FirstName’: ‘Sheon’, ‘LastName’: ‘Shaiyer’},
{‘GradePoint’: ‘B’, ‘FirstName’: ‘Janny’, ‘LastName’: ‘Jeus’},
{‘GradePoint’: ‘A’, ‘FirstName’: ‘Sham’, ‘LastName’: ‘Sharma’}])
Вывод:
FirstName,LastName,Grade
Jeorge,Belly,B
Krishna,Kumar,A
Sheon,Shaiyer,C
Janny,Jeus,B
Sham,Sharma,A
Строки с 3 по 11: Мы открываем файл output.csv в режиме записи (’w’). Затем мы передаем заголовок csv в виде списка в DictWriter при создании самого объекта. Мы должны сообщить объекту имена столбцов csv перед записью в csv; иначе это вызовет ошибку, потому что тогда объект не сможет понять ключевые имена словаря. В строке 7 мы создали список объектов словаря и передали его объекту writerows, чтобы сразу записать все данные в файл csv.
Вывод показывает, что наши данные успешно записаны в файл csv.
Заключение
В этой статье мы узнали, как использовать методы DictReader () и DictWriter (). Мы также видели способ сразу записать список объектов словаря в csv. Основное отличие, когда мы пишем список словарей или отдельный объект словаря, — это метод writerows. Мы использовали метод writerows, когда у нас было несколько данных, и метод writerow, когда у нас были только отдельные данные.