Convertir datos CSV en diccionarios de Python es una tarea común, ya que los diccionarios proporcionan una forma flexible y eficiente de trabajar con datos estructurados. Esta sección explorará el proceso de extraer datos de archivos CSV y almacenarlos en diccionarios.
Convertir CSV a diccionarios
Para convertir datos CSV en diccionarios, puedes utilizar la clase csv.DictReader proporcionada por el módulo csv. Esta clase lee el archivo CSV y devuelve un iterador que produce un diccionario para cada fila, donde las claves son los encabezados de columna y los valores son los datos correspondientes.
import csv
## Sample CSV data
with open('data.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
La salida del código anterior será una serie de diccionarios, donde cada diccionario representa una fila del archivo CSV.
{'Name': 'John', 'Age': '25', 'City': 'New York'}
{'Name': 'Jane', 'Age': '30', 'City': 'London'}
Manipular filas de encabezado
La clase csv.DictReader asume que la primera fila del archivo CSV contiene los encabezados de columna. Si este no es el caso, puedes especificar los nombres de campo manualmente al crear el objeto 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)
Esto producirá la misma salida que el ejemplo anterior, pero sin depender de que la primera fila del archivo CSV contenga los encabezados de columna.
Acceder a los valores de un diccionario
Una vez que hayas convertido los datos CSV en diccionarios, puedes acceder fácilmente a los valores de cada columna utilizando las claves correspondientes.
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}")
Esto mostrará los valores individuales de cada fila en el archivo CSV.
Al entender cómo convertir datos CSV en diccionarios, puedes aprovechar el poder de las estructuras de datos de Python y realizar operaciones más avanzadas en tus datos CSV.