2021/1/10 序列化模块(python)

JSON序列化

json.dumps()和json.loads()

import json

dic = {'username': "ping_sen", ' password': 123456, 'flag': False}
print("原始数据:", dic)

respose = json.dumps(dic)
print("JSON序列化数据:", respose)

respose_bytes = respose.encode()
print("bytes化网络数据:", respose_bytes)



request = respose_bytes.decode()
print("接收网络数据:", request)

req = json.loads(request)
print("接收后的JSON数据:", req)

 

 

 

json 写入文件

import json

dic = {'username': "ping_sen", ' password': 123456, 'flag': False}
with open("1.json", mode='w', encoding='utf-8') as f1:
  f1.write(json.dumps(dic))

读取json文件

import json

dic = {'username': "ping_sen", ' password': 123456, 'flag': False}
with open("1.json",encoding='utf-8') as f1:
  r = f1.read()
print(json.loads(r))

 

 多json写入文件

import json

dic1 = {'username': "ping_sen", ' password': 123456, 'flag': False}
dic2 = {'username': "111", ' password': 1234121256, 'flag': False}
dic3 = {'username': "12312", ' password': 3121231, 'flag': False}


with open('2.json','a', encoding='utf-8') as f1:
  f1.write(f"{json.dumps(dic1)}\n{json.dumps(dic2)}\n{json.dumps(dic3)}\n")

 

 

 

读取多条json文件信息

import json

with open('2.json', encoding='utf-8') as f1:
  for line in f1:
    r = json.loads(line)
  print(r)

 

pickle(用于网络传输)

 

pickle.dumps()和pickle.loads()

dumps方法

 

import pickle

lis = [11, 22, "23121", "asdsda", False, {1: '2'}]

ret = pickle.dumps(lis)
print(ret)

 

 由于pickle直接将数据转化为bytes类型数据,所以在打印时为bytes数据

 

loads方法

import pickle

lis = [11, 22, "23121", "asdsda", False, {1: '2'}]

ret = pickle.dumps(lis)
print(pickle.loads(ret))

 

 

 

pickle文件操作

写

import pickle

lis = [11, 22, "23121", "asdsda"]
with open("1.pickle", 'wb') as f1:
    f1.write(pickle.dump(lis, f1))

pickle.dump()方法直接将文件内容转变为bytes类型数据,所以在引入open()内置函数时,其中的mode模式要改为‘wb’模式(写入bytes类型数据)

 读

import pickle

lis = [11, 22, "23121", "asdsda"]
with open("1.pickle", mode='rb') as f1:
    print(pickle.load(f1))

 

序列化模块总结:

由于常规数据类型在转化为能够进行网络数据通信的bytes数据结构后不能够进行逆向转化,所以引入序列化模块,将传入的数据变为可逆向转化的类型。JSON.dumps多用于网络传输和文件存取,JSON.dump()用于单个数据存取,pickle.dumps网络传输,pickle.dump文件存取

posted @ 2021-01-10 15:17  ping_sen  阅读(78)  评论(0)    收藏  举报