zoukankan      html  css  js  c++  java
  • python -序列化

    python中用于序列化的两个模块

    • json 用于【字符串】和【python基本数据类型】之间进行转换
    • pickle 用于【python特有的类型】 和 【python基本数据类型】间进行转换

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

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

    json更加适合跨语言,字符串,基本数据类型
    pickle ,python 复杂类型的序列化,仅适用于python

    一、json 模块

    json提供了四个功能:dumps 、dump、loads 、load

    1.将python基本数据类型转换成字符串类型

    import json
    dic =  {'k1':'v1'}
    
    #将python基本数据类型转换成字符串形式
    result = json.dumps(dic)
    print(result,type(result))
    输出结果:
    {"k1": "v1"} <class 'str'>

    2.将python字符串形式转换成基本数据类型

    s1 = '{"k1":123}'
    #将python字符串形式转换成基本数据类型
    dic = json.loads(s1)
    print(dic,type(dic))
    输出结果:
    {'k1': 123} <class 'dict'>

     3.将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

    import json
    li = [11,22,33]
    json.dump(li,open('db1','w'))
    把列表li 转换为字符串并写入到文件
    结果:就是把[11, 22, 33] 写入到db1文件中

    4.将文件中的字符串转换为python的基本数据类型

    import json
    li2 = json.load(open('db1','r'))
    print(li,type(li))
    输出结果:
    [11, 22, 33] <class 'list'>

    5.序列化的使用:

    import requests
    import json
    response = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')
    response.encoding = 'utf-8'
    
    dic = json.loads(response.text)
    print(type(dic))
    print(dic)

     

    二、pickle模块

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

    1.pickle.dumps 将python基本数据类型转换成字符串类型

    import pickle
    li = [11,22,33]
    r = pickle.dumps(li)
    print(r)
    结果:
    b'x80x03]qx00(Kx0bKx16K!e.'

    2.pickle.loads 将python字符串形式转换成基本数据类型

    import pickle
    li = [11,22,33]
    r = pickle.dumps(li)
    #print(r)
    result = pickle.loads(r)
    print(result)
    结果:
    [11, 22, 33]

    3.pickle.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

    import pickle
    li = [11,22,33]
    pickle.dump(li,open('db2','wb'))

    4.pickle.load 将文件中的字符串转换为python的基本数据类型

    import pickle
    li = [11,22,33]
    pickle.dump(li,open('db2','wb'))
    result = pickle.load(open('db2','rb'))
    print(result)
    结果:
    [11, 22, 33]
    UnixFBI 运维特工 www.unixfbi.com
  • 相关阅读:
    项目总结1--技术
    基于MFC的Opengl实现动画
    vs2010 MFC Opengl实现
    设计模式-状态模式
    设计模式-访问者模式
    设计模式-责任链模式
    设计模式-中介者模式
    设计模式-命令模式
    设计模式-备忘录模式
    设计模式-观察者模式
  • 原文地址:https://www.cnblogs.com/pangguoping/p/5561133.html
Copyright © 2011-2022 走看看