Python中Json模块和Pickle模块的使用-Python教程

资源魔 44 0

正在对数据进行序列化以及反序列化是常见的数据操作,Python提供了两个模块不便开发者完成数据的序列化操作,即 json 模块以及 pickle 模块。这两个模块次要区分以下:

json 是一个文本序列化格局,而 pickle 是一个二进制序列化格局;

json 是咱们能够直观浏览的,而 pickle 不成以;

json 是可互操作的,正在 Python 零碎以外宽泛应用,而 pickle 则是 Python 公用的;

默许状况下,json 只能示意 Python 内置类型的子集,不克不及示意自界说的类;

但 pickle 能够示意年夜量的 Python 数据类型。

保举学习:Python视频教程

Json 模块

Json 是一种轻量级的数据替换格局,因为其具备传输数据量小、数据格局易解析等特性,它被宽泛使用于各零碎之间的交互操作,作为一种数据格局通报数据。它蕴含多个罕用函数,详细以下:

dumps()函数

dumps()函数能够将 Python 工具编码成 Json 字符串。例如:

#
字典转成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()函数

dump()函数能够将 Python工具编码成 json 字符串,并主动写入到文件中,没有需求再独自写文件。例如:

#
字典转成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()函数

loads()函数能够将 json 字符串转换成 Python 的数据类型。例如:

#
这是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()跟loads()性能类似,load()函数能够将 json 字符串转换成 Python 数据类型,没有同的是前者的参数是一个文件工具,没有需求再独自读此文件。例如:

#
把json串变为python的数据类型: 字典, 传一个文件工具, 没有需求再独自读文件
import json# 关上文件
f = open('users.json', 'r', encoding = 'utf-8')
print(json.load(f))

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

Pickle 模块

Pickle 模块与 Json 模块性能类似,也蕴含四个函数,即 dump()、dumps()、loads() 以及 load(),它们的次要区分以下:

dumps 以及 dump 的区分正在于前者是将工具序列化,然后者是将工具序列化并保留到文件中。loads 以及 load 的区分正在于前者是将序列化的字符串反序列化,然后者是将序列化的字符串从文件读取并反序列化。

dumps()函数

dumps()函数能够将数据经过非凡的方式转换为只有python言语意识的字符串,例如:

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.'

dump()函数

dump()函数能够将数据经过非凡的方式转换为只有python言语意识的字符串,并写入文件。例如:

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

写入胜利

loads()函数

loads()函数能够将pickle数据转换为python的数据构造。例如:

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

load()函数

load()函数能够从数据文件中读取数据,并转换为python的数据构造。例如:

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

本文来自 python教程 栏目,欢送学习!

以上就是Python中Json模块以及Pickle模块的应用的具体内容,更多请存眷资源魔其它相干文章!

标签: json python教程 python编程 python使用问题 pickle

抱歉,评论功能暂时关闭!