zoukankan      html  css  js  c++  java
  • python——序列化

    # dic={''}
    # f=open('test','w')
    # f.write(dic)
    #这样是无法将字典写入的
    #要将变量转为字符串
    # dic={'1:2'}
    # dic=str(dic)
    # f=open('test','w')
    # f.write(dic)
    
    # f=open('test','r')
    # data=f.read()
    # print(data['1'])
    #TypeError: string indices must be integers
    #这样无法取出字典
    #需要动用eval函数
    # f=open('test','r')
    # data=f.read()
    # print(eval(data))
    
    #序列化可以更简单的帮我们传字典
    #json 掌握两种方法即可:loads与dumps
    #load与dump是简化的存在
    #pickle与json使用方法大致相同
    
    #1.json
    #存入
    import json
    dic={'name':'lin','age':'20'}
    f=open('test','w')
    a=json.dumps(dic)#1
    #将dic进行序列化
    f.write(a)#2
    # 1+2=json.dump(dic,f)
    f.close()
    #{"name": "lin", "age": "20"}
    
    #取出
    import json
    f=open('test','r')
    a=f.read()#1
    a=json.loads(a)#2
    #1+2= a=a.load(f)
    #使用load进行读取
    print(a['name'])
    f.close()
    #lin
    
    # def zzzi():
    #     print('1')
    # a=json.dumps(zzzi)
    #<function zzzi at 0x000001D2451A3950> is not JSON serializable
    #json无法对函数、类进行序列化
    #但pickle可以
    
    #2.pickle
    import pickle
    def zzzi():
        print('1')
    a=pickle.dumps(zzzi)
    f=open('test1','wb')
    #需要改为二进制 所以用wb 不然默认ste类型无法写入
    f.write(a)
    f.close()
    #结果是看不懂的的 而json为可视的:
    #�c__main__
    # zzzi
    # q .
    
    import pickle
    f=open('test1','rb')
    #接收时也是rb
    a=f.read()
    a=pickle.loads(a)
    a()
    
    #3.shelve
    #shelve存储就是一种字典的模式
    #存入
    import shelve
    f=shelve.open('test2')
    f['zzzi']={'name':'lin','age':'20'}
    #结果为三个文件
    
    #取出
    import shelve
    f=shelve.open('test2')
    a=f.get('zzzi')
    print(a)
    #{'name': 'lin', 'age': '20'}
    
    #关于get
    
    a={'name':'lin','age':'20'}
    print(a['name'])
    a['name']='zzzi'#也可以起到修改的作用
    print(a['name'])
    #=print(a,get('name'))
    print(a.get('weight','100'))
    #若选取建的没有可以加上
  • 相关阅读:
    PHP学习笔记之继承(面向对象三大特性之一)
    php学习笔记之封装练习题
    PHP学习笔记---封装(面向对象三大特性之一)
    PHP学习笔记之面向对象(上)
    php学习笔记之数组遍历练习题1
    php学习笔记数组与数据结构1(数组)
    php学习笔记数组与数据结构1(日期时间函数及遇到的问题解决)
    顺序查找和二分法查找
    冒泡排序
    字符串类型的一些操作处理
  • 原文地址:https://www.cnblogs.com/zzzi/p/11377354.html
Copyright © 2011-2022 走看看