zoukankan      html  css  js  c++  java
  • 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 只能对列表,字典进行序列化

  • 相关阅读:
    Linux密码文件介绍
    MongoDB与微服务
    MongoDB应用场景及选型
    MongoDB性能诊断工具
    1.7每日进度
    《架构即未来》(3)
    《架构即未来》(2)
    论面向服务架构设计
    浅谈MVC设计模式
    《架构即未来》(1)
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8493267.html
Copyright © 2011-2022 走看看