¿Cómo usar Pickle para guardar y cargar variables en Python?

La serialización es una técnica utilizada para guardar el estado de un objeto de cualquier proceso. Posteriormente podemos utilizar este estado por deserialización, para continuar con el proceso. Pickle es un módulo de Python que facilita serializar o guardar variables y cargarlas cuando sea necesario. A diferencia de la serialización JSON, Pickle convierte el objeto en una string binaria. JSON es específico del texto, pero Pickle es específico de Python y puede serializar las clases personalizadas que JSON no puede serializar. Debido a esta característica, se usa mucho en el entrenamiento de modelos de aprendizaje automático. Este artículo analiza cómo las variables se pueden guardar y cargar en python usando pickle.

Funciones utilizadas:

  • En python, el método dumps() se usa para guardar variables en un archivo pickle.

Sintaxis:

pickle.dumps(obj, protocolo=Ninguno, *, fix_imports=Verdadero, buffer_callback=Ninguno)

  • En python, loads() se usa para cargar datos guardados de un archivo en escabeche

Sintaxis:

pickle.loads(datos, /, *, fix_imports=Verdadero, codificación=”ASCII”, errores=”estricto”, buffers=Ninguno)

Guardar una variable:

  • Método 1: pasar la variable

En el método dumps(), podemos pasar la variable y nos devolverá la string binaria para la misma. Luego podemos transmitirlo a otros módulos de Python o guardarlo en una base de datos.

Ejemplo:

Python3

import pickle
  
# Create a variable
myvar = [{'This': 'is', 'Example': 1}, 'of',
         'serialisation', ['using', 'pickle']]
  
# Use dumps() to make it serialized
serialized = pickle.dumps(myvar)
  
print(serialized)

Producción:

b’\x80\x04\x95K\x00\x00\x00\x00\x00\x00\x00]\x94(}\x94(\x8c\x04Esto\x94\x8c\x02es\x94\x8c\x07Ejemplo\x94K\x01u \x8c\x02of\x94\x8c\rserialización\x94]\x94(\x8c\x05usando\x94\x8c\x06pickle\x94ee.’

  • Método 2:   podemos guardar directamente la variable en un archivo en sí.

Ejemplo:

Python3

import pickle
  
# Create a variable
myvar = [{'This': 'is', 'Example': 2}, 'of',
         'serialisation', ['using', 'pickle']]
  
# Open a file and use dump()
with open('file.pkl', 'wb') as file:
      
    # A new file will be created
    pickle.dump(myvar, file)

Cargando una Variable:
 

  • Método 1: 

El método loads() toma una string binaria y devuelve la variable correspondiente. Si la string no es válida, arroja un PickleError.

Ejemplo:

Python3

import pickle
  
# This is the result of previous code
binary_string = b'\x80\x04\x95K\x00\x00\x00\x00\x00\x00\x00]\x94(}\x94(\x8c\x04This\x94\x8c\x02is\x94\x8c\x07Example\x94K\x01u\x8c\x02of\x94\x8c\rserialisation\x94]\x94(\x8c\x05using\x94\x8c\x06pickle\x94ee.'
  
# Use loads to load the variable
myvar = pickle.loads(binary_string)
  
print(myvar)

Producción:

[{‘Esto’: ‘es’, ‘Ejemplo’: 1}, ‘de’, ‘serialización’, [‘usando’, ‘pickle’]]

  • Método 2: 

El método load() carga un archivo encurtido y devuelve una variable deserializada.

Ejemplo:

Python3

import pickle
  
# Open the file in binary mode
with open('file.pkl', 'rb') as file:
      
    # Call load method to deserialze
    myvar = pickle.load(file)
  
    print(myvar)

Producción:

[{‘Esto’: ‘es’, ‘Ejemplo’: 2}, ‘de’, ‘serialización’, [‘usando’, ‘pickle’]]

Publicación traducida automáticamente

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