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