Извлечение данных из CSV в словари
Преобразование CSV-данных в словари Python - это распространенная задача, так как словари предоставляют гибкий и эффективный способ работы со структурированными данными. В этом разделе мы рассмотрим процесс извлечения данных из CSV-файлов и их хранения в словарях.
Преобразование CSV в словари
Для преобразования CSV-данных в словари можно использовать класс csv.DictReader
, предоставляемый модулем csv
. Этот класс считывает CSV-файл и возвращает итератор, который создает словарь для каждой строки, где ключами являются заголовки столбцов, а значениями - соответствующие данные.
import csv
## Sample CSV data
with open('data.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
Вывод вышеприведенного кода будет представлять собой серию словарей, где каждый словарь представляет строку из CSV-файла.
{'Name': 'John', 'Age': '25', 'City': 'New York'}
{'Name': 'Jane', 'Age': '30', 'City': 'London'}
Работа с заголовочными строками
Класс csv.DictReader
предполагает, что первая строка CSV-файла содержит заголовки столбцов. Если это не так, можно вручную указать имена полей при создании объекта DictReader
.
import csv
## CSV file with no header row
with open('data.csv', 'r') as file:
reader = csv.DictReader(file, fieldnames=['Name', 'Age', 'City'])
for row in reader:
print(row)
В результате будет получен тот же вывод, что и в предыдущем примере, но без зависимости от первой строки CSV-файла, содержащей заголовки столбцов.
Доступ к значениям словаря
После преобразования CSV-данных в словари можно легко получить доступ к значениям каждого столбца, используя соответствующие ключи.
import csv
with open('data.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
name = row['Name']
age = row['Age']
city = row['City']
print(f"Name: {name}, Age: {age}, City: {city}")
В результате будут выведены отдельные значения для каждой строки в CSV-файле.
Понимая, как преобразовать CSV-данные в словари, вы сможете использовать возможности структур данных Python и выполнять более сложные операции с вашими CSV-данными.