Maison  >  Article  >  développement back-end  >  Utilisation du module Json et du module Pickle en Python

Utilisation du module Json et du module Pickle en Python

angryTom
angryTomavant
2019-11-27 15:21:053104parcourir

Utilisation du module Json et du module Pickle en Python

La sérialisation et la désérialisation des données sont des opérations de données courantes. Python fournit deux modules pour faciliter la mise en œuvre des opérations de sérialisation des données par les développeurs, à savoir le module json et picklemodule. Les principales différences entre ces deux modules sont les suivantes :

json est un format de sérialisation de texte, tandis que pickle est un format de sérialisation binaire

json peut être lu intuitivement, mais pickle ne le peut pas ; >

json est interopérable et largement utilisé en dehors du système Python, tandis que pickle est spécifique à Python

Par défaut, json ne peut représenter qu'un sous-ensemble des types intégrés de Python ;

mais pickle peut représenter un grand nombre de types de données Python.

Apprentissage recommandé :

Tutoriel vidéo Python

Module Json

Json est un format d'échange de données léger En raison de ses caractéristiques de petite quantité de données transmises et de sa facilité d'analyse du format de données, il est largement utilisé dans les opérations interactives entre différents systèmes. données. Il contient plusieurs fonctions couramment utilisées, comme suit :

fonction dumps()

la fonction dumps() peut encoder des objets Python en chaînes Json. Par exemple : la fonction

#
字典转成json字符串 加上ensure_ascii = False以后, 可以识别中文, indent = 4 是间隔4个空格显示

import json
d = {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    },
}
print(json.dumps(d, ensure_ascii = False, indent = 4))

# 执行结果: {
    "小明": {
        "sex": "男",
        "addr": "上海",
        "age": 26
    },
    "小红": {
        "sex": "女",
        "addr": "上海",
        "age": 24
    }
}

dump()

la fonction dump() peut encoder des objets Python en chaînes json et les écrire automatiquement dans le fichier, pas besoin d'écrire des fichiers. séparément. Par exemple : la fonction

#
字典转成json字符串, 不需要写文件, 自动转成的json字符串写入到‘ users.json’ 的文件中
import json
d = {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    },
}#
打开一个名字为‘ users.json’ 的空文件
fw = open('users.json', 'w', encoding = 'utf-8')

json.dump(d, fw, ensure_ascii = False, indent = 4)

loads()

la fonctionloads() peut convertir la chaîne json en type de données Python. Par exemple : la fonction

#
这是users.json文件中的内容 {
        "小明": {
            "sex": "男",
            "addr": "上海",
            "age": 26
        },
        "小红": {
            "sex": "女",
            "addr": "上海",
            "age": 24
        }
    }

#!/usr/bin / python3# 把json串变成python的数据类型
import json# 打开‘ users.json’ 的json文件
f = open('users.json', 'r', encoding = 'utf-8')# 读文件
res = f.read()
print(json.loads(res))

# 执行结果: {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    }
}

load()

load() a des fonctions similaires àloads(). La fonction load() peut convertir les chaînes json en types de données Python. . La différence est que le paramètre du premier est un objet fichier et qu'il n'est pas nécessaire de lire ce fichier séparément. Par exemple :

#
把json串变成python的数据类型: 字典, 传一个文件对象, 不需要再单独读文件
import json# 打开文件
f = open('users.json', 'r', encoding = 'utf-8')
print(json.load(f))

# 执行结果: {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    }
}

Module Pickle

Le module Pickle a des fonctions similaires au module Json et contient également quatre fonctions, à savoir dump(), dumps(), charges () et load(), leurs principales différences sont les suivantes :

La différence entre dumps et dump est que le premier sérialise l'objet, tandis que le second sérialise l'objet et l'enregistre dans un fichier. La différence entre Loads et Load est que le premier désérialise la chaîne sérialisée, tandis que le second lit la chaîne sérialisée à partir du fichier et la désérialise.

fonction dumps()

la fonction dumps() peut convertir des données sous une forme spéciale en une chaîne qui n'est reconnue que par le langage python, par exemple :

import pickle# dumps功能
import pickle
data = ['A', 'B', 'C', 'D']
print(pickle.dumps(data))

b '\x80\x03]q\x00(X\x01\x00\x00\x00Aq\x01X\x01\x00\x00\x00Bq\x02X\x01\x00\x00\x00Cq\x03X\x01\x00\x00\x00Dq\x04e.'

fonction dump()

la fonction dump() peut convertir les données en une chaîne reconnue uniquement par le langage python sous une forme spéciale et l'écrire dans un fichier. Par exemple :

# dump功能
with open('test.txt', 'wb') as f:
    pickle.dump(data, f)
    print('写入成功')

Écrire avec succès


fonctionloads()

la fonctionloads() peut convertir les données pickle en structure de données python. Par exemple : la fonction

# loads功能
msg = pickle.loads(datastr)
print(msg)
['A', 'B', 'C', 'D']

load()

la fonctionload() peut lire les données d'un fichier de données et les convertir en une structure de données Python. Par exemple :

# load功能with open('test.txt', 'rb') as f:
   data = pickle.load(f)
    print(data)
['A', 'B', 'C', 'D']

Cet article provient de la rubrique

tutoriel python

, bienvenue pour apprendre !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer