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