zoukankan      html  css  js  c++  java
  • 序列化模块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
    

      

  • 相关阅读:
    数据分析的主要内容仍是结构化计算_数据分析师
    数据分析的主要内容仍是结构化计算_数据分析师
    在Excel工作表单元格中引用当前工作表名称
    在Excel工作表单元格中引用当前工作表名称
    茶叶店也可以用数据分析
    茶叶店也可以用数据分析
    业务实践,数据分析应从细节入手_数据分析师
    业务实践,数据分析应从细节入手_数据分析师
    2014新浪研发project师实习笔试(哈尔滨站)
    uva--10714+找规律
  • 原文地址:https://www.cnblogs.com/duanpengpeng/p/9450460.html
Copyright © 2011-2022 走看看