Guardar un dictado en un archivo

Save Dict File



El diccionario es un objeto muy famoso en Python. Y es una colección de claves y valores. La clave del dict debe ser inmutable y puede ser integer, float, string, pero ni una lista ni un dict en sí pueden ser una clave. Entonces, a veces necesitamos guardar los objetos dict en un archivo. Entonces, veremos diferentes métodos para guardar un objeto dict en un archivo.

Podemos escribir el diccionario en un archivo en Python de diferentes formas como:







  1. Archivo de valores separados por comas (.csv)
  2. Archivo json (.json)
  3. Archivo de texto (.txt)
  4. Archivo de pepinillos (.pkl)

Vamos a explicar todos los métodos anteriores.



Método 1: guardar el diccionario en formato CSV

Para guardar el diccionario en CSV (valores separados por comas), usamos el módulo CSV. Los valores separados por comas para guardar el dictado de Python son el método más común y famoso. La mayoría de los programadores utilizan este método solo para guardar el dictado en un archivo. Guardar el diccionario en un archivo como CSV es muy fácil ya que tenemos que transferir los datos como una cadena.



Example_1: dict_to_csv.py





# dict_to_csv.py
importar csv

dict_sample= {'nombre':'LinuxHint', 'ciudad':'ESE', 'educación':'Ingenieria'}

con abierto('data.csv', 'en') comoF:
porllaveendict_sample.teclas():
F.escribir('% s,% s orte'%(llave,dict_sample[llave]))

Línea 2 : Importamos el módulo Python CSV.

Línea 4 : Creamos un dict de muestra de datos. Intentaremos guardarlo en forma de archivo CSV.



Línea 6: Estamos usando aquí la declaración 'con' para escribir el archivo CSV. La declaración 'con' maneja el manejo de excepciones automáticamente durante la lectura o escritura de un archivo. Abrimos el archivo data.csv en el modo de escritura y asignamos ese objeto a la variable f.

Línea 7 Estamos ejecutando un bucle for que extrae la clave y, en la siguiente línea, escribe la clave y el valor_clave en un archivo CSV. Entonces este ciclo se ejecutará hasta que haya datos.

Salida: data.csv

nombre,LinuxHint
ciudad,ESE
educación,Ingenieria

Entonces, lo anterior muestra el archivo de salida después de escribir en data.csv.

Ahora, entendemos cómo guardar el dictado en un archivo en forma de CSV. Intentemos con otro ejemplo en el que queremos escribir una lista de objetos dict en el archivo CSV.

Example_2: dict_to_csv_2.py

# dict_to_csv_2.py

importar csv

csvColumns= ['Ciudad', 'País', 'Rango']
dictDemo= [
{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7},
]
csvFileName= 'data.csv'
tratar:
con abierto(csvFileName, 'en') comoF:
escritor= csv.DictWriter(F,nombres de campo=csvColumns)
escritor.encabezado de escritura()
pordatosendictDemo:
escritor.escritor ahora(datos)
excepto IOError:
impresión('Tengo un error')

Línea 3 a 12: Importamos el módulo Python CSV y creamos una lista de objetos dict. También creamos una lista de nombres de columnas.

Línea 13: Asignamos el nombre del archivo CSV a una variable.

Línea 15: Usamos la declaración 'con', y la declaración asignó el objeto de retorno del método __enter__ a la variable f.

Línea 16 a 19: Después de asignar el objeto de retorno a la variable f, llamamos a un método DictWriter del módulo CSV y pasamos dos parámetros (nombre de archivo (f) y nombres de columna). Luego llamamos a otro método writeheader () que escribirá la primera fila del archivo CSV, que generalmente es el nombre de los campos. Luego ejecutamos un bucle for en la lista de objetos dict y escribimos uno por uno en el archivo CSV usando el método writerow ().

Método 2: guarde el dictado en un archivo de texto en formato JSON (modo anexar)

También podemos guardar los objetos dict en forma de JSON en un archivo. El siguiente código explicará lo mismo. Este código también explica cómo podemos agregar un nuevo JSON a una lista existente de JSON.

Ejemplo : dict_to_file_asJSON.py

# dict_to_file_asJSON.py

importarjson

dictDemo= [
{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7},
]

nombre del archivo= 'dict.json'

# Escribir la lista de objetos dict en un archivo
con abierto(nombre del archivo,modo='en') comoF:
json.vertedero(dictDemo,F)

# Escribir un nuevo objeto dict en un archivo como adjuntar y sobrescribir todo el archivo
con abierto(nombre del archivo,modo='en') comoF:
dictDemo.adjuntar({'Ciudad':'Pekín', 'País':'China'})
json.vertedero(dictDemo,F)

Producción : dict.json

[{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7},
{'Ciudad':'Pekín', 'País':'China'}
]

Línea 1 a 13 : Importamos el módulo JSON. Luego creamos una lista de objetos dict para la demostración. Luego asignamos el nombre del archivo JSON a un nombre de archivo variable.

Línea 15 a 17 : Estamos usando la declaración 'with' para abrir el archivo JSON para escritura, y luego usamos el método json.dump para convertir los objetos dict a JSON y luego escribir en el archivo.

Línea 20 a 22: Estas líneas son muy importantes porque ¿qué pasará? Si intentamos agregar nuevos objetos JSON a los archivos ya escritos. Los datos anteriores se perderán debido a la sobrescritura. Luego podemos usar el nombre de la lista de dictados anterior como lo hicimos (dictDemo), y luego agregamos el nuevo objeto a eso. Y por último, convertimos todo el archivo a JSON y sobrescribimos todo el archivo.

En la salida, podemos ver que se agrega un nuevo objeto JSON a una lista JSON existente.

Método 3: guarde los objetos del diccionario en un archivo en formato txt

También podemos guardar el diccionario en un formato de cadena normal en el archivo. Por lo tanto, el método siguiente es una forma muy sencilla de guardar los objetos del diccionario en el archivo en forma de texto. Pero este código no funcionará si queremos agregar un nuevo objeto de diccionario al archivo porque se sobrescribirá en los datos escritos previamente. Entonces, para eso, lo veremos en el siguiente código.

Ejemplo: dict_to_txt.py

# dict_to_txt.py

dictDemo= [
{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7},
]

nombre del archivo= 'dict.txt'

# Escribir la lista de objetos dict en un archivo
con abierto(nombre del archivo,modo='en') comoF:
F.escribir(pag(dictDemo))

Producción: dict.txt

[{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7}]

Línea 1 a 11 : Creamos una lista de objetos de diccionario y asignamos el nombre del archivo dict.txt a un nombre de archivo variable.

Línea 14 a 15 : Estamos usando aquí la declaración 'con', que maneja automáticamente la excepción. Y estamos escribiendo la lista de objetos dict como una cadena en un archivo.

Ejemplo: dict_to_txt_2.py

Hemos visto cómo guardar los objetos dict en un archivo en formato .txt. Pero en el código anterior, hay un problema al agregar un nuevo objeto. Entonces, cambiamos el método de adición de 'w' a 'a', lo que puede resolver nuestro problema como se muestra a continuación en el código.

# dict_to_txt_2.py

'' ': cvar
Este código guardará los objetos dict en el archivo con la
añadir modo.
'''

dictDemo= [
{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7},
]

nombre del archivo= 'dict_to_file_appendMode.txt'

# Escribir la lista de objetos dict en un archivo
con abierto(nombre del archivo,modo='a') comoF:
F.escribir(pag(dictDemo))

Línea 7 a 15 : Creamos una lista de objetos de diccionario y asignamos el nombre del archivo dict_to_file_appendMode.txt a un nombre de archivo variable.

Línea 18 a 19 : Cambiamos el modo = 'a', y esto resolverá nuestro problema. La siguiente salida muestra que hemos agregado dos objetos dict en el mismo archivo sin sobrescribir los datos anteriores.

Salida: dict_to_file_appendMode.txt

[{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7}]

[{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7}]

Método 4: guarde el objeto dict en un archivo usando el método pickle.

También podemos guardar el objeto dict en un archivo usando el módulo pickle de Python. El módulo pickle admite muchos objetos para la serialización en python y también admite objetos dict.

# dict_to_file_use_pickle.py

importar pepinillo

dictDemo= [
{'Ciudad':'Nueva York', 'País':'USA', 'Rango':3},
{'Ciudad':'Sydney', 'País':'Australia', 'Rango':5},
{'Ciudad':'Dubai', 'País':'Emiratos Árabes Unidos', 'Rango':10},
{'Ciudad':'Mumbai', 'País':'India', 'Rango':17},
{'Ciudad':'Pekín', 'País':'China', 'Rango':7},
]

nombre del archivo= 'picklefile.pkl'

con abierto(nombre del archivo, 'lejos') comoF:
pepinillo.vertedero(dictDemo,F)

Línea 3 a 13 : Importamos el módulo pickle y creamos una lista de objetos dict. También creamos un nombre de archivo donde guardaremos nuestros objetos dict.

Línea 15 a 16 : Estamos usando aquí la declaración 'con' y abriendo el archivo con modo adjunto y formato binario. Luego volcamos los objetos dict en el archivo.

Conclusión

Entonces, hemos visto diferentes métodos para guardar un objeto de diccionario en un archivo. Depende del usuario cómo desea guardar el objeto en el archivo. Los métodos más comunes para guardar el objeto dict en el archivo son JSON y CSV. Los formatos JSON y CSV son muy famosos desde el punto de vista de la programación o fáciles de manejar en Python. También hemos visto el modo de agregar archivos para guardar.

El código de este artículo se puede descargar desde este enlace:

https://github.com/shekharpandey89/save-dict-object-to-a-file