python中数据类型与json的序列化和反序列

| JSON                | Python       |
| ------------------- | ------------ |
| object              | dict    (集合)     |
| array               | list       列表  |
| string              | str          |
| number (int / real) | int / float  |
| true / false        | True / False |
| null                | None         |
import json
#json模块主要有四个比较重要的函数,分别是:

#- `dump` - 将Python对象按照JSON格式序列化到文件中
#- `dumps` - 将Python对象处理成JSON格式的字符串
#- `load` - 将文件中的JSON数据反序列化成对象
#- `loads` - 将字符串的内容反序列化成Python对象
#这里出现了两个概念,一个叫序列化,一个叫反序列化。
#序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换为可以存储或传输的形式,这样在需要的时候能够恢复到原先的状态,而且通过序列化的数据重新获取字节时,可以利用这些字节来产生原始对象的副本(拷贝)。
#反序列化: 与这个过程相反的动作,即从一系列字节中提取数据结构的操作,就是反序列化(deserialization)”。
def main():
#字典 存入文件中 存在一个问题,如果文件命名为json.py那么就会报错。dump mydict
= { 'name': '张三', 'age': 30, 'qq': 9571658, 'friends': ['王大锤', '白元芳'], 'cars': [ {'brand': 'BYD', 'max_speed': 180}, {'brand': 'Audi', 'max_speed': 280}, {'brand': 'Benz', 'max_speed': 320} ] } try: with open('data.json', 'w', encoding='utf-8') as fs:
#直接把中文编译了 如果不想编译,可以添加参数 ensurea_ascii=False 存入文件就是中文了 json.dump(mydict, fs)
except IOError as e: print(e) print('保存数据完成!') if __name__ == '__main__': main()

 

posted on 2023-01-04 10:45  kevin_yang123  阅读(440)  评论(0编辑  收藏  举报