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

巴扎黑
Libérer: 2017-09-19 10:10:21
original
1125 Les gens l'ont consulté

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.
Copier après la connexion

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
Copier après la connexion

Résultat :

{'name':'python', 'site':'pythontab.com'}
Copier après la connexion

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)
Copier après la connexion

Résultat :

{"name":"python", "site":"pythontab.com"} <type &#39;str&#39;>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal