相同点

    1.dump 和 dumps 都实现了序列化

    2.load 和 loads 都实现反序列化

    变量从内存中变成可存储或传输的过程称之为序列化
    序列化是将对象状态转化为可保存或可传输格式的过程。

    变量内容从序列化的对象重新读到内存里称之为反序列化
    反序列化是流转换为对象。

    区别

    1.load 和 loads (反序列化)

    load: 针对文件句柄,将json格式的字符串转换为dict,从文件中读取(将string转换为dict)

    1. a_json = json.load(open('demo.json','r'))

    loads:针对内存对象,将string转换为dict (将string转换为dict)

    1. a = json.loads('{'a':'1111','b':'2222'}')

    2.dump 和 dumps (反序列化)

    dump: 将dict类型转换为json字符串格式,写入到文件(易存储)

    1. a_dict = {'a':'1111','b':'2222'}
    2. json.dump(a_dict, open('demo.json', 'w')

    dumps:将dict转换为string (易传输)

    1. a_dict = {'a':'1111','b':'2222'}
    2. a_str = json.dumps(a_dict)

    总结

    根据序列化和反序列的特性

    loads:是将string转换为dict

    dumps:是将dict转换为string

    load:是将里json格式字符串转化为dict,读取文件

    dump:是将dict类型转换为json格式字符串,存入文件