Open Vicente1824 opened 3 months ago
Hola @Vicente1824.
Esto sucede dado que al serializar con pickle especificamente al finalizar agrega un marcador 'e' . Indicando que cuando le hagas una deserialización, se ignoran los caracteres despues del marcador. Pero si agregas entremedio algunos bytes podrias o no obtenen un error, dado que eso dependera del algoritmo que utilize la libreria. Espero haya respondido tu duda
Prerrequisitos
(Marcar colocando una
X
entre los corchetes los ítems que ya hiciste, así:"[X]"
)Duda
Estaba haciendo la tarea 4, en la parte de codificar la solución, y mientras lo hacía me di cuenta de esto que pasa con los bytes. Si yo tengo, por, ejemplo, una lista, la serializo, y luego la desserializo, obtengo la misma lista; entonces, si yo serializo una lista, pero esta vez la modifico añadiéndole cosas (más bytes de cualquier tipo), y luego la desserializo, solo podría esperar que pasen 2 cosas: o falla, o me entrega una lista diferente como resultado. Pero no fue así: al desserializar, me entregó la misma lista entregada originalmente. Adjunto ejemplo aquí:
Y el output fue:
En la segunda línea de output se puede ver que el bytearray ahora tiene un byte más, pero a pesar de eso obtengo la lista original, ¿por qué añadir bytes no modifica el resultado? ¿Estoy haciendo algo mal o qué es lo que pasa? ¿Eso quiere decir que podría añadir cosas a mis elementos serializados y nunca me dará problemas? Haciendo más pruebas, incluso noté que puedo modificar algunos bytes de mi elemento serializado y seguirá funcionando (si modifico muchos, la función loads empieza a tirar errores).
PD: Ya logré resolver mi problema en la tarea, hago esta pregunta por curiosidad porque no entiendo muy bien los bytes.