序列化模块

序列化模块

jason格式数据:跨语言传输

d = {'username': 'jason', 'pwd': 123}
import json

1.将python其他数据转换成json格式字符串(序列化)
'''序列化'''
res = json.dumps(d)
print(res,type(res))
# {"username": "jason", "pwd": 123}<class 'str'> 双引号,json唯一标识

2.将json格式字符串转成当前语言对应的某个数据类型
'''反序列化'''
d = {'username': 'jason', 'pwd': 123}
res1 = json.loads(res)
print(res1,type(res1))
# {'username': 'jason', 'pwd': 123} <class 'dict'>

序列化模块(2)

import json


bytes_data = b'{"username": "jason", "pwd": 123}'
bytes_str = bytes_data.decode('utf8')
print(bytes_str) # {"username": "jason", "pwd": 123}
print(type(bytes_str)) # <class 'str'>
bytes_dict = json.loads(bytes_str) 
print(bytes_dict) # {'username': 'jason', 'pwd': 123}
print(type(bytes_dict)) # <class 'dict'>

序列化模块(3)

'''
暂且可以简单的理解为:
	序列化就是将其他数据类型转化成字符串过程
		json.dumps()
	反序列化就是将字符串转化成其他类型数据类型
		json.loads()
'''

序列化模块(4)

# 将字典写入文件再取出
d = {'username': 'jason', 'pwd': 123}

with open(r'a.txt', 'w', encoding='utf8') as f:
    f.write(str(d))
    
with open(r'a.txt', 'r', encoding='utf8') as f1:
    data = f1.read()
    data1 = dict(data)
print(data1,type(data1))
# 报错  									达咩达咩

序列化模块(4.1)

import json

d = {'username': 'jason', 'pwd': 123}
with open(r'a.txt', 'w', encoding='utf8') as f:
    res = json.dumps(d)
    f.write(res)
# 序列化成json格式字符串

with open(r'a.txt', 'r', encoding='utf8') as f:
    res = f.read()
res1 = json.loads(res)
print(type(res1))
# <class 'dict'>
'''json.dumps()和json.loads()直接操控数据'''

序列化模块(4.2)

import json

d1 = {'username': 'tom', 'password': 123, 'hobby': [11, 22, 33]}
with open(r'a.txt', 'w', encoding='utf8') as f:
    json.dump(d1, f)
with open(r'a.txt', 'r', encoding='utf8') as f:
    res = json.load(f)
print(res, type(res))
# {'username': 'tom', 'password': 123, 'hobby': [11, 22, 33]} <class 'dict'>

'''json.dump()和json.load()结合文件一起操作''’

序列化模块(4.3)

d1 = {'username': 'tony好帅哦 我好喜欢', 'pwd': 123,'hobby':[11,22,33]}
print(json.dumps(d1,ensure_ascii=False))

# 若文本中出现中文需要做转换

溜了溜了

posted @ 2021-11-29 20:14  谢俊杰  阅读(32)  评论(0编辑  收藏  举报