zoukankan      html  css  js  c++  java
  • Python json和pickle模块

    json和pickle模块

    • 用于序列化的两个模块

    序列化模块:json 和 pickle

    json,用于字符串 和 python数据类型间进行转换
    pickle,用于python特有的类型 和 python的数据类型间进行转换
    
    Json模块提供了四个功能:dumps、dump、loads、load
    pickle模块提供了四个功能:dumps、dump、loads、load
    

    json 模块

    • loads
    import json
     
    s = '{"key1":"value1","key2":"value2"}'     # ==> 用json模块将字符串转化成其他数据类型,字符串里出现引号必须用双引号
    ret = json.loads(s)                         # ==> loads 由字符串转其他数据类型
    print(ret,type(ret))
     
    l = '[11,22,3,56,75]'
    result =json.loads(l)
    print(result,type(result))
     
    # 输入结果:
    {'key1': 'value1', 'key2': 'value2'} <class 'dict'>
    [11, 22, 3, 56, 75] <class 'list'> 
    
    • load
    import json
     
    ret = json.load(open('ethan.txt','r'))  # ==> 将文档(内部是字符串格式)转换成python的其他数据类型
    print(ret,type(ret))                    # ==> 文档里是字典样式的字符串
     
    # 输入结果:
    {'key1': 'value1', 'key2': 'value2'} <class 'dict'>
    
    • 总结
    # json.loads() 用于将形似字典、列表、元组的字符串,转换成字典、列表、元组
    # json.load() 用于将文档(内容是形似字典、列表、元组的字符串)转换成字典、列表、元组  
    
    • dumpsdump
    import json
     
    di = {"key1":"value1","key2":"value2"}
    ret = json.dumps(di)                    # ==> 将字典、列表、元组 转换成字符串格式
    print(ret,type(ret))
     
    # 输入结果:
    {"key1": "value1", "key2": "value2"} <class 'str'>
     
    json.dump(di,open('test2.txt','a+'))    # ==> 将字典、元组、列表转换成字符串格式并写入文档
     
    # 输入结果: test2文件内容
    {"key1": "value1", "key2": "value2"}
    
    • 总结
    # json.dumps()  用于将字典、列表、元组,转换成字符串
    # json.dump()   用于将字典、列表、元组,存入文档中并转换成字符串  
    

    pickle 模块

    import pickle
     
    d = {'name': 'ethan', 'age': 28}
    ret = pickle.dumps(d)                       # ==> pickle将字典、元组、列表转换成二进制
    print(ret, type(ret))
     
    l = [11, 22, 3, 45, 54]
    res = pickle.dumps(l)
    print(res)
     
    pickle.dump(d, open('test2.txt', 'ab'))     # ==> 将字典、元组、列表转换成二进制写入文档
     
    # 注意 dump load 不要一起运行,会报错,一步一步来
     
    f = open('test2.txt', 'rb')
    r = pickle.loads(f.read())                  # ==> 将二进制转换成字典、列表、元组
    # r = pickle.load(f)
    print(r)
     
    # 输入结果:
    b'x80x03}qx00(Xx04x00x00x00nameqx01Xx05x00x00x00ethanqx02Xx03x00x00x00ageqx03Kx1cu.' <class 'bytes'>
    b'x80x03]qx00(Kx0bKx16Kx03K-K6e.'
    {'name': 'ethan', 'age': 28}
    
    • 总结
    # pickle.dumps()  用于将字典、列表、元组,转换成二进制
    # pickle.dump()   用于将字典、列表、元组,存入文档中并转换成二进制
    # pickle.loads()  用于将二进制,转换成字典、列表、元组
    # pickle.load()   用于将文档二进制,转换成字典、列表、元组
    
  • 相关阅读:
    二叉搜索树第k个节点
    序列化二叉树
    atoi()和stoi()函数
    02.规划过程组表格-风险数据表
    02.规划过程组表格-风险概率和影响评估
    02.规划过程组表格-风险登记册
    02.规划过程组表格-风险管理计划
    02.规划过程组表格-沟通管理计划
    02.规划过程组表格-人力资源管理计划
    02.规划过程组表格-责任分配矩阵
  • 原文地址:https://www.cnblogs.com/evescn/p/13627476.html
Copyright © 2011-2022 走看看