zoukankan      html  css  js  c++  java
  • json和pickle的数据序列化

    我们的目的是类似虚拟机的挂起操作

    在没学json与pickle之前我们通常这样。

    #序列化
    a={
        'name':'qiangql',
        'age':22
    }
    f=open('text.text','w')
    f.write(str(a))  #这里用str把字典变成了字符串
    f.close()
    #反序列化
    f=open('text.text','r')
    b=eval(f.read())    #这里用eval把字符串变成了可执行的字典
    f.close()
    print(b['age'])
    1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled/内置函数测.py
    2 22
    3 
    4 Process finished with exit code 0
    执行结果

    json方法,json 可以跨平台,但是不支持日期!!!!

    #序列化json
    import json
    a={
        'name':'qiangql',
        'age':22
    }
    f=open('text1.text','w')
    f.write(json.dumps(a)) #这里也可写为json.dump(a,f)
    json.dump(a,f)
    f.close()
    #反序列化jeson
    import json
    f=open('text1.text','r')
    # data=json.loads(f.read())
    data=json.load(f)
    print(data['age'])
    1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled/反序列化.py
    2 22
    3 
    4 Process finished with exit code 0
    执行结果

    pickle方法,支持所有pyhton格式

    #序列化pickle
    import pickle
    def sayhello(name):
        print('hello',name)
    
    a={
        'name':'qiangql',
        'age':22,
        'func':sayhello
    }
    
    f=open('text11.text','wb')  #二进制,因为他支持多平台,所以这里是多平台都能识别的二进制
    
    pickle.dump(a,f)  ### f.write(pickle.dumps(a))
    f.close()
    #反序列化
    import pickle
    def sayhello(name):
        print('hello',name)
    f=open('text11.text','rb')
    
    data=pickle.load(f)      ###data=pickle.loads(f.read())
    print(data['age'])
    print(data['func']('qiangql'))
    1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled/picket反序列化.py
    2 22
    3 hello qiangql
    4 None
    5 
    6 Process finished with exit code 0
    执行结果

    这里要注意一点,所有的序列化,都只能挂起一次,然后反序列化一次,不能多次进行挂起操作,因为反序列化只能一次。

  • 相关阅读:
    Mybatis(二)入门程序通过id查找用户、模糊查找用户、添加用户、删除用户
    excel测试数据导入
    (转)接口自动化测试之http请求实践总结
    (转)TestNG框架提供两种传入参数的方法:
    Jmeter 集成Excel读写接口参数返回值
    优化问题
    redux
    clientHeight offsetTop scrollTop
    antddesign
    ACMICPC实验室周赛2020.3.6
  • 原文地址:https://www.cnblogs.com/PYlog/p/8693891.html
Copyright © 2011-2022 走看看