El módulo marshal
en Python permite serializar y deserializar estructuras de datos de manera eficiente. Se utiliza principalmente para guardar y cargar objetos en un formato binario, aunque es menos seguro y flexible que pickle
o json
.
marshal
en Python
marshal
es un módulo estándar de Python que permite convertir estructuras de datos (como listas, diccionarios o tuplas) en un formato binario para su almacenamiento o transmisión.
import marshal
marshal
Función | Descripción |
---|---|
marshal.dump(obj, file)
|
Serializa un objeto y lo guarda en un archivo binario. |
marshal.load(file)
|
Carga un objeto serializado desde un archivo. |
marshal.dumps(obj)
|
Serializa un objeto y devuelve los datos como bytes. |
marshal.loads(bytes_obj)
|
Deserializa un objeto desde una cadena de bytes. |
import marshal
# Datos a serializar
datos = {"nombre": "Python", "version": 3.11, "modulos": ["os", "sys", "marshal"]}
# Guardar en un archivo binario
with open("datos.marshal", "wb") as f:
marshal.dump(datos, f)
# Leer desde el archivo binario
with open("datos.marshal", "rb") as f:
datos_cargados = marshal.load(f)
print(datos_cargados) # {'nombre': 'Python', 'version': 3.11, 'modulos': ['os', 'sys', 'marshal']}
import marshal
datos = [1, 2, 3, {"a": 10, "b": 20}]
# Serializar a bytes
bytes_obj = marshal.dumps(datos)
# Deserializar desde bytes
datos_recuperados = marshal.loads(bytes_obj)
print(datos_recuperados) # [1, 2, 3, {'a': 10, 'b': 20}]
marshal
marshal
pueden cambiar entre versiones de Python.
pickle
, pero menos flexible: Se usa internamente para almacenar bytecode de Python (.pyc
).
Documentación oficial de Python: marshal — Serialización interna de objetos
Jorge García
Fullstack developer