Python LanguageSerialización de datos


Sintaxis

  • unpickled_string = pickle.loads (cadena)
  • unpickled_string = pickle.load (file_object)
  • pickled_string = pickle.dumps ([('', 'cmplx'), {('object',): None}], pickle.HIGHEST_PROTOCOL)
  • pickle.dump (('', 'cmplx'), {('object',): None}], file_object, pickle.HIGHEST_PROTOCOL)
  • unjsoned_string = json.loads (cadena)
  • unjsoned_string = json.load (file_object)
  • jsoned_string = json.dumps (('a', 'b', 'c', [1, 2, 3]))
  • json.dump (('' a ',' b ',' c ', [1, 2, 3]), file_object)

Parámetros

Parámetro Detalles
protocol Usando pickle o cPickle , es el método por el cual los objetos se serializan o no serializan. Probablemente quieras usar pickle.HIGHEST_PROTOCOL aquí, lo que significa el método más nuevo.

Observaciones

¿Por qué usar JSON?

  • Soporte de idiomas
  • Legible para humanos
  • A diferencia de Pickle, no tiene el peligro de ejecutar código arbitrario

¿Por qué no usar JSON?

  • No admite tipos de datos Pythonic
  • Las claves en los diccionarios no deben ser más que tipos de datos de cadena.

¿Por qué Pickle?

  • Gran manera de serializar Pythonic (tuplas, funciones, clases)
  • Las claves en los diccionarios pueden ser de cualquier tipo de datos.

¿Por qué no pickle?

  • Falta soporte de idiomas
  • No es seguro cargar datos arbitrarios.

Serialización de datos Ejemplos relacionados