Fork me on GitHub

python 序列化和反序列化

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,是只能读取字符串

posted @ 2018-04-23 17:51  耳_东  阅读(371)  评论(0)    收藏  举报