Python: escribe el diccionario de la lista en CSV

En este artículo, discutiremos la implementación práctica de cómo escribir un diccionario de listas en CSV.

Podemos usar el módulo csv para esto. El objeto de archivo csvwriter admite tres métodos, como csvwriter.writerow(), csvwriter.writerows(), csvwriter.writeheader(). 

Sintaxis :

csv.writer(csvfile, dialect='excel')

Parámetros :

  • csvfile: un objeto de archivo con el método write().
  • dialecto (opcional): Nombre del dialecto a utilizar.

Método 1: Usar csv.writerow() 

Para escribir un diccionario de lista en archivos CSV, las funciones necesarias son csv.writer(), csv.writerow(). Este método escribe una sola fila a la vez. Las filas de campo se pueden escribir con este método.

Sintaxis:

csvwriter.writerow(row)

Ejemplo 1 :

Python3

# import the csv package
import csv
 
# create a csv file with desired name
#and store it in a variable
with open('test.csv', 'w') as testfile:
   
    # store the desired header row as a list
    # and store it in a variable
    fieldnames = ['first_field', 'second_field', 'third_field']
     
    # pass the created csv file and the header
    # rows to the Dictwriter function
    writer = csv.DictWriter(testfile, fieldnames=fieldnames)
     
    # Now call the writeheader function,
    # this will write the specified rows as
    # headers of the csv file
    writer.writeheader()

Producción:

Alternativamente, un diccionario de listas se puede convertir en un archivo CSV usando solo la función csv.writerow(), simplemente iterando a través de cada par clave-valor en el diccionario como se muestra

Ejemplo 2:

Python3

# create a dictionary of list
test = {'Age': [52, 24, 31, 47, 51, 61],
        'Sex': ['F', 'M', 'M', 'F', 'F', 'M'],
        'height': [143, 163, 144, 154, 174, 177],
        'weight': [77, 66, 59, 53, 71, 63], }
 
# create a csv file called test.csv and
# store it a temp variable as outfile
with open("test.csv", "w") as outfile:
   
   # pass the csv file to csv.writer.
    writer = csv.writer(outfile)
     
    # convert the dictionary keys to a list
    key_list = list(test.keys())
     
    # find the length of the key_list
    limit = len(key_list)
     
    # the length of the keys corresponds to
    # no. of. columns.
    writer.writerow(test.keys())
     
    # iterate each column and assign the
    # corresponding values to the column
    for i in range(limit):
        writer.writerow([test[x][i] for x in key_list])

Salida :

Método 2: Usar csv.writerows() 

Para escribir un diccionario de lista en archivos CSV, las funciones necesarias son csv.writer(), csv.writerows(). Este método escribe todos los elementos en filas (una iteración de objetos de fila como se describe arriba) en el objeto de archivo del escritor.

Sintaxis

csvwriter.writerows(rows)

Ejemplo 1 :

Python3

# import the csv package
import csv
 
# create a file called test.csv
# and store it in a temporary variable
with open('test.csv', 'w') as testfile:
   
    # pass the temp variable to csv.writer
    # function
    csvwriter = csv.writer(testfile)
     
    # pass the row values to be stored in
    # different rows
    csvwriter.writerows([['row1'], ['row2'], ['row3'],
                         ['row4'], ['row5'], ['row6']])

Producción:

Ejemplo 2:

 Aquí vamos a crear un archivo csv test.csv y lo almacenaremos en una variable como archivo de salida.

Python3

# create a dictionary of list
test = {'Age': [52, 24, 31, 47, 51, 61],
        'Sex': ['F', 'M', 'M', 'F', 'F', 'M'],
        'height': [143, 163, 144, 154, 174, 177],
        'weight': [77, 66, 59, 53, 71, 63], }
 
# create a csv file  test.csv and store
# it in a variable as outfile
with open("test.csv", "w") as outfile:
 
    # pass the csv file to csv.writer function.
    writer = csv.writer(outfile)
 
    # pass the dictionary keys to writerow
    # function to frame the columns of the csv file
    writer.writerow(test.keys())
   
    # make use of writerows function to append
    # the remaining values to the corresponding
    # columns using zip function.
    writer.writerows(zip(*test.values()))

Salida :

Método 3: Usar csv.writeheader() 

Este método escribe una fila con los nombres de campo especificados, como encabezado del objeto csv.dictwriter.

Sintaxis

csvwriter.writeheader()

Ejemplo :

Python3

# import the csv package
import csv
 
# create a csv file with desired name
#and store it in a variable
with open('test.csv', 'w') as testfile:
   
    # store the desired header row as a list
    # and store it in a variable
    fieldnames = ['first_field', 'second_field', 'third_field']
     
    # pass the created csv file and the header
    # rows to the Dictwriter function
    writer = csv.DictWriter(testfile, fieldnames=fieldnames)
     
    # Now call the writeheader function,
    # this will write the specified rows as
    # headers of the csv file
    writer.writeheader()

Producción:

Publicación traducida automáticamente

Artículo escrito por jssuriyakumar 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 *