最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 详解Python序列化模块pickle和json的使用和区别

    正文概述    2020-04-11   427

    详解Python序列化模块pickle和json的使用和区别

    这是用于序列化的两个模块:

    json: 用于字符串和python数据类型间进行转换

    pickle: 用于python特有的类型和python的数据类型间进行转换

    Json模块提供了四个功能:dumps、dump、loads、load 

    pickle模块提供了四个功能:dumps、dump、loads、load

    pickle用法

    dumps可以将数据类型转换成序列化(只有python才认识)的字符串

    >>> import pickle
    >>> data = {'name':'python', 'site':'pythontab.com'}
    >>> pstr = pickle.dumps(data)
    >>> print pstr
    (dp0
    S'name'
    p1
    S'python'
    p2
    sS'site'
    p3
    S'pythontab.com'
    p4
    s.

    将数据转换成序列化字符串,并写入文件:

    import pickle
    data = {'name':'python', 'site':'pythontab.com'}
    #打开文件,然后将data写入
    with open('dump.data', 'wb') as f:
        pickle.dump(data, f)
    #同样读取的时候也需要打开文件
    with open('dump.data', 'rb') as f:
        data_load = pickle.load(f)
    print data_load

    输出结果

    {'name':'python', 'site':'pythontab.com'}

    文件中显示的内容与上面一致

    json的用法

    json的用法和pickle是一样的

    import json
    data = {'name':'python', 'site':'pythontab.com'}
    jstr = json.dumps(data)
    print jstr, type(jstr)

    输出结果

    {"name":"python", "site":"pythontab.com"} <type 'str'>

    注意: 看起来好像是个字典,但要注意了,实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。

    那pickle和json有什么区别呢?

    json是可以在不同语言之间交换数据的,而pickle只在python之间使用。

    json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。


    起源地下载网 » 详解Python序列化模块pickle和json的使用和区别

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元