json模块就是用来处理json数据类型,主要用作网络传输。

    1. # Python中的数据类型的格式
    2. data = [
    3. {"id": 1, "name": "武沛齐", "age": 18},
    4. {"id": 2, "name": "alex", "age": 18},
    5. ('wupeiqi',123),
    6. ]
    7. # JSON格式
    8. value = '[{"id": 1, "name": "武沛齐", "age": 18}, {"id": 2, "name": "alex", "age": 18},["wupeiqi",123]]'

    数据类型转json被称为序列化:

    1. import json
    2. data = [
    3. {"id": 1, "name": "武沛齐", "age": 18},
    4. {"id": 2, "name": "alex", "age": 18},
    5. ]
    6. res = json.dumps(data)
    7. print(res) # '[{"id": 1, "name": "\u6b66\u6c9b\u9f50", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
    8. res = json.dumps(data, ensure_ascii=False)
    9. print(res) # '[{"id": 1, "name": "武沛齐", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'

    json类型转数据类型被称为反序列化:

    1. import json
    2. data_string = '[{"id": 1, "name": "武沛齐", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
    3. data_list = json.loads(data_string)
    4. print(data_list)

    python数据类型转json格式对数据类型有所要求,默认只支持dict,list,tuple,str,int,float,True,False,None
    其他类型想要转换需要借助JSONEncoder才能实现
    json模块常用的是:
    json.dumps,序列化生成一个字符串
    json.loads,发序列号生成python数据类型
    json.dump,将数据序列化并写入文件

    1. import json
    2. data = [
    3. {"id": 1, "name": "武沛齐", "age": 18},
    4. {"id": 2, "name": "alex", "age": 18},
    5. ]
    6. file_object = open('xxx.json', mode='w', encoding='utf-8')
    7. json.dump(data, file_object)
    8. file_object.close()

    json.load,读取文件中的数据并反序列化为python的数据类型

    1. import json
    2. file_object = open('xxx.json', mode='r', encoding='utf-8')
    3. data = json.load(file_object)
    4. print(data)
    5. file_object.close()