Maison  >  Article  >  développement back-end  >  Comparez les différences entre les modules de sérialisation Python pickle et json

Comparez les différences entre les modules de sérialisation Python pickle et json

巴扎黑
巴扎黑original
2017-09-19 10:10:211114parcourir

Il s'agit de deux modules pour la sérialisation :

• json : pour la conversion entre les chaînes et les types de données python

• pickle : pour les types spécifiques à python et Convertir entre les types de données python

Le module Json fournit quatre fonctions : dumps, dump,loads, load

Le module pickle fournit quatre fonctions : dumps, dump,loads, load

utilisation de pickle

les dumps peuvent convertir le type de données en chaîne sérialisée (reconnu uniquement par python)

>>> import pickle
>>> data = {'name':'python', 'site':'pythontab.com'}
>>> pstr = pickle.dumps(data)
>>> print pstr
(dp0
S'name'
p1
S'python'
p2
sS'site'
p3
S'pythontab.com'
p4
s.

Convertir les données en chaîne sérialisée et écrire dans le fichier :

import pickle
data = {'name':'python', 'site':'pythontab.com'}
#打开文件,然后将data写入
with open('dump.data', 'wb') as f:
    pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open('dump.data', 'rb') as f:
    data_load = pickle.load(f)
print data_load

Résultat :

{'name':'python', 'site':'pythontab.com'}

Le contenu affiché dans le fichier est cohérent avec ce qui précède

Utilisation de json

Utilisation de json C'est la même chose que pickle

import json
data = {'name':'python', 'site':'pythontab.com'}
jstr = json.dumps(data)
print jstr, type(jstr)

Résultat :

{"name":"python", "site":"pythontab.com"} <type &#39;str&#39;>

Remarque : Cela ressemble à un dictionnaire, mais il doit l'être. Notez qu'il s'agit en fait d'une chaîne , comme json ne peut être qu'au format chaîne, il ressemble simplement à un dictionnaire.

Quelle est la différence entre pickle et json ?

Json peut échanger des données entre différents langages, tandis que pickle ne peut être utilisé qu'entre python.

json ne peut sérialiser que les types de données les plus élémentaires, tandis que pickle peut sérialiser tous les types de données, y compris les classes et les fonctions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn