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