Guarde un dict en un archivo

Guarde un dict en un archivo
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 entero, flotación, cadena, pero ni una lista ni un dict en sí pueden ser una clave. Entonces, a veces necesitamos guardar los objetos dict en un archivo. Por lo tanto, vamos a ver diferentes métodos para guardar un objeto dict en un archivo.

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

  1. Archivo de valor separado por comas (.CSV)
  2. Archivo json (.json)
  3. Archivo de texto (.TXT)
  4. Archivo de pepinillo (.PKL)

Vamos a explicar todos los métodos anteriores.

Método 1: Guardar diccionario en formato CSV

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

Ejemplo_1: dict_to_csv.py

# dict_to_csv.py
Importar CSV
dict_sample = 'nombre': 'Linuxhint', 'City': 'Ca', 'Educación': 'Ingeniería'
con datos abiertos ('.csv ',' w ') como f:
Para la clave en dict_sample.llaves():
F.escribir (" %s, %s \ n" %(clave, dict_sample [clave]))

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

Línea 4: Creamos una muestra de datos de dict. Vamos a intentar guardarlo en forma de un archivo CSV.

Línea 6: Estamos utilizando aquí 'con' Declaración para escribir el archivo CSV. La instrucción 'con' maneja el manejo de la excepción automáticamente durante la lectura o escritura de un archivo. Abrimos los datos del archivo.CSV en el modo de escritura y asigne ese objeto a la variable F.

Línea 7, Estamos ejecutando un bucle for para extraer la tecla, y en la línea siguiente, escribe la tecla y la clave_value a un archivo CSV. Entonces este bucle se ejecutará hasta que haya datos.

Datos resultantes.CSV

Nombre, Linuxhint
Ciudad, CA
Educación, Ingeniería

Entonces, lo anterior muestra el archivo de salida después de escribir en los datos.CSV.

Ahora, entendemos cómo guardar el dict 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.

Ejemplo_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', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rango': 7,
]
csvfileName = "datos.CSV "
intentar:
con Open (CSVFileName, 'W') como F:
escritor = CSV.DictWriter (F, FieldNames = CSVColumns)
escritor.WriteHeader ()
Para datos en dictDemo:
escritor.Writerow (datos)
Excepto ioerror:
Imprimir ("Got Error")

Línea 3 a 12: Importamos el módulo CSV de Python 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 instrucció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 for en la lista de los objetos dict y escribimos uno por uno al archivo CSV usando el método Escritio ().

Método 2: Guarde el dict en un archivo de texto en formato JSON (modo de append)

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 New JSON a una lista existente de JSON.

Ejemplo: dict_to_file_asjson.py

#dict_to_file_asjson.py
importar json
dictDemo = [
'Ciudad': 'Nueva York', 'País': 'USA', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rango': 7,
]
filename = "dict.JSON "
# Escribir la lista de objetos dict a un archivo
con Open (nombre de archivo, modo = 'w') como F:
json.Dump (dictDemo, f)
# Escribir un nuevo objeto dict a un archivo como adjuntar y sobrescribir todo el archivo
con Open (nombre de archivo, modo = 'w') como F:
dictdemo.append ('ciudad': 'bejing', 'país': 'China')
json.Dump (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": "EAU", "Rango": 10,
"Ciudad": "Mumbai", "País": "India", "Rango": 17,
"Ciudad": "Bejing", "País": "China", "Rango": 7,
"Ciudad": "Bejing", "País": "China"
]

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

Línea 15 a 17: Estamos utilizando la instrucción 'con' para abrir el archivo JSON para escribir, y luego usamos el JSON.Volcar método 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 lo que sucederá? Si intentamos agregar objetos New 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 dict anterior como lo hicimos (dictDemo), y luego agregamos el nuevo objeto a ese. Y finalmente, convertimos todo el archivo en 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 formulario txt

También podemos guardar el diccionario en un formato de cadena normal en el archivo. Entonces, el siguiente método es una forma muy simple de guardar los objetos del diccionario en el archivo en el formulario de texto. Pero este código no funcionará si queremos agregar un nuevo objeto de diccionario al archivo porque 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', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rango': 7,
]
filename = "dict.TXT"
# Escribir la lista de objetos dict a un archivo
con Open (nombre de archivo, modo = 'w') como F:
F.escribir (str (dictdemo))

Producción: dictarse.TXT

['Ciudad': 'Nueva York', 'País': 'USA', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rank': 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 utilizando aquí 'con' Declaración, que maneja automáticamente la excepción. Y estamos escribiendo la lista de objetos de 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 el .forma txt. Pero en el código anterior, hay un problema con la agrega de un nuevo objeto. Por lo tanto, cambiamos el método de adición de 'w' a 'a', 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 el
modo de agregar.
"" "
dictDemo = [
'Ciudad': 'Nueva York', 'País': 'USA', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rango': 7,
]
filename = "dict_to_file_appendmode.TXT"
# Escribir la lista de objetos dict a un archivo
con Open (nombre de archivo, mode = 'a') como F:
F.escribir (str (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', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rank': 7]
['Ciudad': 'Nueva York', 'País': 'USA', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rank': 7]

Método 4: Guarde el objeto DICT a un archivo utilizando el método Pickle.

También podemos guardar el objeto DICT a un archivo utilizando el módulo Python Pickle. 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
encurtido de importación
dictDemo = [
'Ciudad': 'Nueva York', 'País': 'USA', 'Rank': 3,
'Ciudad': 'Sydney', 'País': 'Australia', 'Rank': 5,
'Ciudad': 'dubai', 'país': 'EAU', 'rango': 10,
'Ciudad': 'Mumbai', 'País': 'India', 'Rango': 17,
'Ciudad': 'Bejing', 'País': 'China', 'Rango': 7,
]
FileName = "PickleFile.PKL "
con Open (nombre de archivo, 'AB') como F:
pepinillo.Dump (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 utilizando aquí 'con' Declaración y abriendo el archivo con el modo de agregado y el formato binario. Luego arrojamos 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 quiere 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 programación o fáciles de manejar en Python. También hemos visto el modo de anexo de guardar archivos.

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

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