• Day 21 序列化模块_Json,Pickle,Shelve


    序列化 , 数据类型,列表 元组, 字符串 

    只有字符串能被写入文件中. 

    能在网络上传输的只能是bytes - 字符串

    把要传输的和要存储的内容转换成字符串.

    字符串 转换回 要传输和存储的内容 

    序列化只有两种作用.

    1. 网络传输

    2. 数据持久化 -写在文件里

    json 

    pickle  

    shelve   

    d = {'key1':'value1','key2':'value2'}
    print(d)

    答案:{'key1': 'value1', 'key2': 'value2'}
    print(str(d),type(str(d))) #序列化

    答案:{'key1': 'value1', 'key2': 'value2'} <class 'str'>

    print(eval(str(d)),type(eval(str(d))))

    答案:{'key1': 'value1', 'key2': 'value2'}, <class 'dict'>


    import json
    d ={ 'key1':'value1','key2':'value2'}
    ret =json.dumps(d) #序列化
    print(ret ,type(ret)) #json .

    输出结果:{"key1": "value1", "key2": "value2"} <class 'str'>


    import json
    d ={ 'key1':'value1','key2':'value2'}
    ret =json.dumps(d) #序列化
    print(ret ,type(ret)) #json .
    dic = json.loads(ret)
    print(dic,type(dic)) # 反序列化操作

    dump load 用在文件操作数据类型的序列化与反序列化上.
     pickle的用法:

     拿数据 

     


       

     
    import json
    data ={ 'username':['李华','二愣子'],'sex':'male','age':19}
    with open('jason.txt','w',encoding='utf-8') as f :
        json.dump(data,f)
    # 输出结果到jason.txt 文件中:{"username": ["u674eu534e", "u4e8cu6123u5b50"], "sex": "male", "age": 19}
    

    with open(
    'jason.txt','r',encoding='utf-8') as f : print(json.load(f)) # 输出结果:{'username': ['李华', '二愣子'], 'sex': 'male', 'age': 19}

     Json 模块dumps后 是十六进制 文件存储

    # with open('pickle_sample','wb') as f:
    #     pickle.dump(data,f)
    #     pickle.dump(data,f)
    # with open('pickle_sample','rb') as f:
    #     print(pickle.load(f))
    #     print(pickle.load(f))

    Pickle 模块 dumps后是bytes类型

    pickle 模块 dump之后的内容在文件中是乱的 .

    Pickle 可以任意的将python中的数据类型序列化 .

    Json 只能对列表,字典进行序列化

  • 相关阅读:
    项目经理如何管理团队
    正则表达式判断中文字符
    售前工作经验总结
    项目管理知识体系九大知识领域
    项目经理如何调动员工的积极性
    项目经理与客户沟通的宜与忌
    关于CodeSmith生成CSLA代码的联想
    接触CSLA框架的感觉
    C#多线程浅接触二、
    WF工作流开发回顾:介绍
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8493267.html
Copyright © 2020-2023  润新知