21天学习python编程_pickle模块序列化与反序列化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了21天学习python编程_pickle模块序列化与反序列化相关的知识,希望对你有一定的参考价值。

主要内容:

  • 小目标:pickle模块序列化与反序列化
  • 主要内容:掌握pickle模块

如果看完这篇文章,你还是弄不明白pickle操作;
你来找我,我保证不打你,我给你发100的大红包。

1. pickle模块

1.1 认识pickle:

pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议;
序列化:将Python对象转成字节流;
反序列化:将字节流转成Python对象;

1.2 pickle与Json:

主要区别:

JSON是一种文本序列化格式,pickle是二进制序列化格式;
JSON具有一定可读的,而pickle不能
JSON是可以与其他语言相互转换,pickle值能用于Python

2 pickle模块使用

主要方法:

方法 说明
pickle.dumps(obj, protocol=None,...) Python对象序列化
pickle.loads(data, *, ...) 反序列化
pickle.dump(obj, file, ...) 将Python对象序列化并保存到文件
pickle.load(file, ...) 将序列化文件导入,并转成Python对象
  • 序列化与反序列化:

    import pickle
    names = [‘公孙离‘,‘裴擒虎‘]
    #转成Json字符串
    pdata = pickle.dumps(names)
    print(pdata)
    #将Json字符串转Python对象
    data = pickle.loads(pdata)
    print(data)

    结果:

    b‘x80x00q....‘
    [‘公孙离‘, ‘裴擒虎‘]
  • pickle处理文件
    import pickle
    fpath = r‘C:UsershygDesktopdata1.pickle‘
    names = [‘公孙离‘,‘裴擒虎‘]
    #写入操作,wb方式打开文件
    f = open(fpath, ‘wb‘)
    #转成Json,写入到文件
    pickle.dump(names,f)
    f.close()
    #读取操作,rb方式打开文件
    f = open(fpath, ‘rb‘)
    #将Json字符串从文件读取,并转成Python对象
    pdata = pickle.load(f)
    print(pdata)
    f.close()

    结果:

    [‘公孙离‘, ‘裴擒虎‘]

以上就是pickle相关主要内容,pickle操作与json类似,大家可以自己尝试操作下。

以上是关于21天学习python编程_pickle模块序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章

python学习的第21天模块之picklejsonxmlshelveconfigparser

21天学习python编程_认识序列

21天学习python编程_ini文件与ConfigParser模块

21天学习python编程_元组

21天学习python编程_元组

21天学习python编程_列表详解