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()