.
Solución al Ejercicio: Convertir csv a listas de diccionarios
📋 Copiar código
import csv
import io
def csv_a_lista_de_diccionarios(csv_string):
"""
Convierte una cadena de texto con formato CSV simple a una listas de diccionarios.
Args:
csv_string: La cadena de texto con formato CSV.
Returns:
Una listas de diccionarios, donde cada diccionario representa una fila del CSV.
Devuelve una lista vacía si la cadena CSV está vacía o solo contiene encabezados.
"""
f = io.StringIO(csv_string)
reader = csv.DictReader(f)
return list(reader)
# Ejemplos de uso
csv_data1 = """nombre,edad,ciudad
Juan,30,Madrid
Ana,25,Barcelona
Carlos,35,Valencia
"""
resultado1 = csv_a_lista_de_diccionarios(csv_data1)
print(f"Datos CSV:\n{csv_data1}\nConvertidos a:\n{resultado1}")
csv_data2 = """nombre,profesion
Laura,abogada
Pedro,médico
"""
resultado2 = csv_a_lista_de_diccionarios(csv_data2)
print(f"\nDatos CSV:\n{csv_data2}\nConvertidos a:\n{resultado2}")
csv_data3 = """nombre,valor"""
resultado3 = csv_a_lista_de_diccionarios(csv_data3)
print(f"\nDatos CSV:\n{csv_data3}\nConvertidos a:\n{resultado3}")
csv_data4 = ""
resultado4 = csv_a_lista_de_diccionarios(csv_data4)
print(f"\nDatos CSV:\n{csv_data4}\nConvertidos a:\n{resultado4}")
csv_data5 = """col1,col2
dato1,dato2"""
resultado5 = csv_a_lista_de_diccionarios(csv_data5)
print(f"\nDatos CSV:\n{csv_data5}\nConvertidos a:\n{resultado5}")
Explicación del Código:
-
import csv
:
- Importa el módulo
csv
, que
proporciona funcionalidades para trabajar con archivos CSV (y cadenas
con formato CSV).
-
import io
:
- Importa el módulo
io
, que se
utiliza aquí para tratar la cadena CSV como un archivo.
-
def
csv_a_lista_de_diccionarios(csv_string):
:
- Define una función llamada
csv_a_lista_de_diccionarios
que toma una cadena de texto (csv_string
)
con formato CSV como entrada.
-
f = io.StringIO(csv_string)
:
- Crea un objeto
StringIO
a
partir de la cadena CSV. Esto permite que el módulo csv
trate la cadena como si fuera un archivo abierto en modo lectura.
-
reader = csv.DictReader(f)
:
- Crea un objeto
DictReader
del módulo csv
. DictReader
lee las filas del
CSV y las convierte en diccionarios. Utiliza la primera fila del CSV
como los encabezados (las claves de los diccionarios).
-
return list(reader)
:
- Convierte el iterador
reader
en una listas de diccionarios. Cada diccionario en la lista representa
una fila del CSV, con las claves tomadas de la primera fila
(encabezados) y los valores de las celdas correspondientes.
Ejemplos de Uso:
Los ejemplos muestran cómo la función convierte
diferentes cadenas con formato CSV en listas de diccionarios. La primera fila se
utiliza como los nombres de las claves. Si la cadena CSV está vacía o solo
contiene los encabezados, la función devuelve una lista vacía.
.