• 序列化模块json模块


    json.dumps  将其它数据类型的的数据转换成字符串

    json.loads   将字符串类型的其他数据还原

    json.dump   将其他数据类型的数据转换成字符串写入文件

    json.load    将文件中字符串类型的其他数据读出来后显示原数据类型

    json模块的限制及使用方法

    import json
    # json格式的限制1,json格式的key必须是字符串数据类型
    # json格式中的字符串只能是""
    #
    # 如果是数字为key,那么dump之后会强行转成字符串数据类型
    dic = {1:2,3:4}
    str_dic = json.dumps(dic)
    print(str_dic)  #{"1": 2, "3": 4}
    new_dic = json.loads(str_dic)
    print(new_dic)   #{'1': 2, '3': 4}
    #
    # json是否支持元组,对元组做value的字典会把元组强制转换成列表
    dic = {'abc':(1,2,3)}
    str_dic = json.dumps(dic)
    print(str_dic)  #{"abc": [1, 2, 3]}
    new_dic = json.loads(str_dic)
    print(new_dic)   #{'abc': [1, 2, 3]}
    
    # json是否支持元组做key,不支持
    dic = {(1,2,3):'abc'}
    str_dic = json.dumps(dic)  # 报错
    #
    # 对列表的dump
    lst = ['aaa',123,'bbb',12.456]
    with open('json_demo','w') as f:
        json.dump(lst,f)
    with open('json_demo') as f:
        ret = json.load(f)
        print(ret)
    #
    # 能不能多次dump数据到文件里,可以多次dump但是不能load出来了
    dic = {'abc':(1,2,3)}
    lst = ['aaa',123,'bbb',12.456]
    with open('json_demo','w') as f:
        json.dump(lst,f)
        json.dump(dic,f)
    with open('json_demo') as f:
        ret = json.load(f)
        print(ret)
    #
    # 想dump多个数据进入文件,用dumps
    dic = {'abc':(1,2,3)}
    lst = ['aaa',123,'bbb',12.456]
    with open('json_demo','w') as f:
        str_lst = json.dumps(lst)
        str_dic = json.dumps(dic)
        f.write(str_lst+'
    ')
        f.write(str_dic+'
    ')
    
    with open('json_demo') as f:
        for line in f:
            ret = json.loads(line)
            print(ret)
    #
    # 中文格式的 ensure_ascii = False
    dic = {'abc':(1,2,3),'country':'中国'}
    ret = json.dumps(dic,ensure_ascii = False)
    print(ret)
    dic_new = json.loads(ret)
    print(dic_new)
    
    import json
    
    dic = {'abc': "我爱中国"}
    with open("xuxi", "w", encoding="utf-8")as f:
        ret = json.dump(dic, f, ensure_ascii=False)
    with open("xuxi", encoding="utf-8")as f1:
        ret2 = json.load(f1)
        print(ret2)
    # json的其他参数,是为了用户看的更方便,但是会相对浪费存储空间
    import json
    data = {'username':['李华','二愣子'],'sex':'male','age':16}
    json_dic2 = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'),ensure_ascii=False)
    print(json_dic2)
    
    # set不能被dump/dumps
    

      

  • 相关阅读:
    关于基础排序算法的思考--插入排序
    关于购物车的多层复选全选
    随便写写
    第一篇小博文
    C# 遍历目录下所有文件方法
    C#驱动MongoDB官方中查询条件Query用法
    mongodb 修改远程连接
    Python 爬虫练习低调163疫情数据辽宁地图
    jquery easyui datagrid drop事件执行顺序
    https request报错 ServicePointManager.SecurityProtocol 搞定
  • 原文地址:https://www.cnblogs.com/duanpengpeng/p/9450460.html
Copyright © 2020-2023  润新知