005json & pickle

Posted 学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了005json & pickle相关的知识,希望对你有一定的参考价值。

序列化模块

# 文件存取时,遇到的矛盾.
# 数据 读取出来时,反转不回去.
# 凡是数据通过网络传出去最终的格式必须bytes

# 序列化模块作用:
# 将一组数据结构转化成特殊的序列(特殊的字符串,bytes)并且还可以反转回去.
# json 模块: 是所有语言公认的一种序列.最最常用的
# 所以支持的python数据结构有限: int str bool dict list(tuple),None,float
# pickle模块: 只能python语言中使用的,序列化模块:
# 支持python所有的数据类型以及对象.
import json
# dumps,loads 主要用于网络传输,可以用于文件的存取.
# dic = {'username': '太白', 'password': 123,'status': False}
# ret=json.dumps(dic)
# print(ret,type(ret))
# ret_dict = json.loads(ret)
# print(ret,type(ret_dict))

# 特殊的参数ensure_ascii确定是不是使用ascii码 sort_keys我可以给这个字典排序
# dic = {'username': '太白', 'password': 123,'status': False}
# ret = json.dumps(dic,ensure_ascii=False,sort_keys=True)
# print(ret,type(ret))

# dump load: 单个数据的存取文件.
# import json
# dic = {'username': '太白', 'password': 123,'status': False}
# with open('jsonlx1.json',encoding='utf-8',mode='w') as f1:
#     json.dump(dic,f1)
#
# with open('jsonlx1.json',encoding='utf-8') as f1:
#     dic1 = json.load(f1)
# print(dic1,type(dic1))

# 多个数据如何存储到一个文件中 必须换行 不然读取时不识别 会报错?
# import json
# dic1 = {'username': '太白', 'password': 123,'status': False}
# dic2 = {'username': 'alex', 'password': 123,'status': False}
# dic3 = {'username': 'ly', 'password': 123,'status': False}

# with open('jsonmore.json',encoding='utf-8',mode='a') as f1:
#     f1.write(f'{json.dumps(dic1)}
{json.dumps(dic2)}
{json.dumps(dic3)}')
#
# with open('jsonmore.json',encoding='utf-8') as f1:
#     for line in f1:
#         ret = json.loads(line)
#         print(ret,type(ret))

# pickle
import pickle # dumps,loads  只能是网络传输#只能python语言中使用的,序列化模块 支持python所有的数据类型以及对象.

# dumps,loads  只能是网络传输  直接转化为字节
# l1 = ['wusir', '太白', '小黑', 666]
# ret = pickle.dumps(l1)
# print(ret)

# l2 = pickle.loads(ret)
# print(l2,type(l2))

# dump load 数据结构存取文件.
import pickle
# l1 = ['wusir', '太白', '小黑', 666]
# with open('pickle练习.pickle',mode='wb') as f1:
#     pickle.dump(l1,f1)

# with open('pickle练习.pickle', mode='rb') as f1:
#     ret = pickle.load(f1)
#     print(ret,type(ret))



# 多个数据写入文件
# l1 = ['wusir', '太白', '小黑1', 666]
# l2 = ['wusir', '太白', '小黑2', 666]
# l3 = ['wusir', '太白', '小黑3', 666]
# with open('pickle练习1.pickle',mode='wb') as f1:
#     # pickle.dump(l1,f1)
#     # pickle.dump(l2,f1)
#     # pickle.dump(l3,f1)
#
# with open('pickle练习1.pickle', mode='rb') as f1:
#     # ret1 = pickle.load(f1)
#     # ret2 = pickle.load(f1)
#     # ret3 = pickle.load(f1)
#     # print(ret1,ret2,ret3)
#     while 1:
#         try:
#             ret1 = pickle.load(f1)
#             print(ret1)
#         except Exception:
#             break
#

以上是关于005json & pickle的主要内容,如果未能解决你的问题,请参考以下文章

python序列化: json & pickle & shelve 模块

python之json&pickle

pickle&&json

json & pickle 模块

Python json & pickle & shelve模块

python--json & pickle 模块