json对象 -> python数据类型
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import json
contant = {
'name': 'tester',
'sex': '男',
'age': 18,
'is_bool': True
def serialization(*args, **kwargs):
return json.dumps(*args, **kwargs)
def deserialization(*args, **kwargs):
return json.loads(*args, **kwargs)
if __name__ == "__main__":
res = serialization(contant, ensure_ascii=False)
print(deserialization(res))
执行结果:
{'name': 'tester', 'sex': '男', 'age': 18, 'is_bool': True}
可以看到反序列化之后结果都显示回了contant变量定义的python字典对象
那我们能不能直接反序列化contant字典呢?我们来试一下
if __name__ == "__main__":
print(deserialization(contant))
运行结果:
File "D:\Python3\lib\json\__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict
可以看到报错了,大致意思为:json对象应该时一个字符串,字节或字节数组;不是一个字典。
所以我们在反序列化的时候传的值必须时
json对象
格式。