python 序列化和反序列化

本文介绍了Python中json和pickle模块的基本使用方法,通过实例演示了如何使用dump、dumps、load和loads进行数据的序列化与反序列化操作,并解释了它们之间的区别。

python 序列化处理

Python中常用的文件序列化和反序列化模块是json和pickle
而二个模块都有load,loads,dump,dumps功能

一般情况下,想保存数据,然后读出来:

import json

username = input('输入用户名:').strip()
password = input('输入密码:').strip()

user_info = {
    'username': username,
    'password': password,
    'data_path': os.path.join(config.DATA_PATH, username),
    'status': 0,
    'create_time': time.strftime('%Y-%m-%d %H-%M-%S')
}

user_file = os.path.join(os.path.dirname(os.path.absdir(__file__)),'%s.json' %username)
print(user_file)

# dumps
with open(user_file, 'w') as user:
    json.dump(user_info,user)


with open(user_file,'r') as user:
    data = json.load(user)
    print(data)
    

那么loads和dumps又是什么呢?
loads和dumps可以看成是字符串处理(我的理解)

with open(user_file, 'w') as user:
    data = json.dumps(user_info)  
    print(data)
    print('---------')
    data2 = json.loads(data)
    print(data2)

可以直接打印

/Users/chenzhuanglan/OneDrive/learning/python/scripts/homework-python/day7/homework/FTP_server/db/account/111.json
{"username": "111", "password": "111", "data_path": "/Users/chenzhuanglan/OneDrive/learning/python/scripts/homework-python/day7/homework/FTP_server/db/data/111", "status": 0, "create_time": "2018-04-22 16-54-41"}
---------
{'username': '111', 'password': '111', 'data_path': '/Users/chenzhuanglan/OneDrive/learning/python/scripts/homework-python/day7/homework/FTP_server/db/data/111', 'status': 0, 'create_time': '2018-04-22 16-54-41'}

dumps可以直接将数据格式化成字符串,
loads也是直接读取字符串

那么 dump,dumps的数据类型就是所有的Python的数据类型,当然json不支持的Python高级数据类型是不行的;

load和loads,是只能读取字符串

转载于:https://www.cnblogs.com/czlan91/p/8920708.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值