zoukankan      html  css  js  c++  java
  • Python中模块json与pickle的功能介绍

                                      json & pickle & shelve

    1. json的序列化与反序列化

    json的使用需要导入该模块,一般使用import json即可。

    1. json的序列化

      方法1:json.dumps(obj)
      例如:f = open('file.txt','w')
           json.dumps(f.write([1,2,3,]))
           f.close()
      #使用该方法把内存数据以字符串的格式存储到文件中。
      方法2:json.dump(obj,file)
      例如:f = open('file.txt','w')
           json.dump([1,2,3,],f)
           f.close()
      #使用该方法不用打开调用文件的写入函数即可直接把数据写入到文件中。
      
    2. json的反序列化

      方法1:json.loads(obj)
      例如:f = open('file.txt','r')
           print(json.loads(f.read()))
           f.close()
      #使用该方法把文件中的数据读取到内存中,并转化为内存中的数据类型。
      方法2:json.load(file)
      例如:f = open('file.txt','r')
           print(json.load(f))
           f.close()
      #该方法不用调用文件的读取函数即可直接把数据读取到内存中。
      

    2. pickle的序列化与反序列化

    pickle的使用需要导入该模块,一般使用import pickle即可。

    1. pickle的序列化

      方法1:pickle.dumps(obj)
      例如:f = open('file.txt','wb')
           json.dumps(f.write([1,2,3,]))
           f.close()
      #使用该方法把内存数据以二进制的格式存储到文件中
      方法2:pickle.dump(obj,file)
      例如:f = open('file.txt','wb')
           json.dump([1,2,3,],f)
           f.close()
      #使用该方法不用打开调用文件的写入函数即可直接把数据写入到文件中
      
    2. pickle的反序列化

      方法1:pickle.loads(obj)
      例如:f = open('file.txt','rb')
           print(json.loads(f.read()))
           f.close()
      #使用该方法把文件中的数据读取到内存中,并转化为内存中的数据类型。
      方法2:pickle.load(file)
      例如:f = open('file.txt','rb')
           print(json.load(f))
           f.close()
      #该方法不用调用文件的读取函数即可直接把数据读取到内存中。
      

    3. json与pickle的对比:

    1. 相同点

    1. 两者写入和读取数据的方法一样。
    2. 两者对于同一个文件写入和读取时的数据都是一个整体。
    3. 虽然写入时可以写入多次,但读取只能读取一次,因此一般同一个文件只建议写入一次。

    2. 不同点

    1. json在写入和读取数据时,是以字符串类型进行操作。
    2. pickle在写入和读取数据时,则是以二进制的格式进行操作。
    3. json只支持简单的数据类型,如字符串、列表、字典、元祖、集合等。
    4. pickle支持简单的数据类型,也支持复杂的数据类型,如函数、类等。
    5. json可以跨语言进行转换。
    6. pickle只能在Python中使用。

    3. shelve

    该模块的方法和字典是一样的,利用方法把数据以键值对的方式进行存储到文件中,读取时同样使用键值对进行获取。

    例如:f = shelve.open('file')
         f[key] = value
         f.close()
    #利用该模块打开文件时,不需要指定打开的模式。
  • 相关阅读:
    Docker从12升级到17ce
    镜像清理和删除
    flask-session 在redis中存储session
    linux后台运行python程序 nohup
    flask 自动切换环境
    Linux SSH登录很慢的解决方法
    docker-compose docker启动工具,容器互联
    为什么企业需要IT资产管理
    sql 中取整,四舍五入取整,向下取整,向上取整。
    sqlalchemy 获取表结构。
  • 原文地址:https://www.cnblogs.com/single-boy/p/7565433.html
Copyright © 2011-2022 走看看