Programa Python para convertir Dict of list a CSV

Dado un diccionario de la lista d, la tarea es escribir un programa Python para escribir un diccionario en un archivo CSV.

La idea para resolver este problema es comprimir el diccionario y luego escribirlo en un archivo CSV. Python proporciona un módulo integrado llamado ‘csv’ para trabajar con archivos CSV. La clase csv.writer se usa para escribir en un archivo CSV. La clase csv.writer proporciona dos métodos para escribir en un archivo csv.

  • writerow(): el método writerow() se utiliza para escribir una sola fila.
  • writerows(): el método writerows() se utiliza para escribir varias filas.

Python3

# Program to write a dictionary of list to csv
import csv
  
# dictionary of list
d = {"key1": ['a', 'b', 'c'], 
     "key2": ['d', 'e', 'f'], 
     "key3": ['g', 'h', 'i']}
  
# writing to csv file
with open("test.csv", "w") as outfile:
    
    # creating a csv writer object
    writerfile = csv.writer(outfile)
      
    # writing dictionary keys as headings of csv
    writerfile.writerow(d.keys())
      
    # writing list of dictionary
    writerfile.writerows(zip(*d.values()))

Producción:

La función zip() de Python toma iterable como entrada y devuelve un objeto iterador. Este iterador genera una serie de tuplas y cada tupla tiene elementos de cada uno de los iterables. 

Aquí, las listas en el diccionario se proporcionan como entrada para zip() y devolverá una serie de tuplas con cada tupla con elementos de todas las listas, estas tuplas se tratarán como filas para el archivo CSV.

Ejemplo:

Python3

# Program to write a dictionary of list to csv
import csv
  
# dictionary of list
d = {"key1": ['a', 'b', 'c'], 
     "key2": ['d', 'e', 'f'], 
     "key3": ['g', 'h', 'i']}
  
# writing to csv file
with open("test.csv", "w") as outfile:
    
    # creating a csv writer object
    writerfile = csv.writer(outfile)
      
    # writing dictionary keys as headings of csv
    writerfile.writerow(d.keys())
      
    # writing list of dictionary
    writerfile.writerows(zip(*d.values()))

Producción:

Publicación traducida automáticamente

Artículo escrito por sainimansi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *