• json、pickle


     

    A---dumps----(json字符串)----loads---B;

    obj---stringify---(json字符串)----parse---str;(前端之JS)
    var obj1={name:"wc",age:18};
    var str=JSON.stringify(obj1);
    console.log(str);

    var str1='{"name":"wc","age":18}';
    var obj=JSON.parse(str1);
    console.log(obj);

     

    序列化模块

    Python中用于序列化的两个模块:

    • json     跨平台跨语言的数据传输格式,用于【字符串】和 【python基本数据类型】 间进行转换
    • pickle   python内置的数据传输格式,多用于二进制形式,用于【python特有的类型】 和 【python基本数据类型】间进行转换

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

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

    #pickle.dumps将数据通过特殊的形式转换为只有python能识别的字符串
    import pickle
    data={'k1':123,'k2':'hello'}
    p_str=pickle.dumps(data)
    print(p_str)      ------->b'x80x03}qx00(Xx02x00x00x00k2qx01Xx05x00x00x00helloqx02Xx02x00x00x00k1qx03K{u.'
    s = pickle.loads(p_str)
    print(s)       -------->{'k2': 'hello', 'k1': 123}
    #pickle.dump将数据通过特殊的形式转换为只有python认识的字符串,并写入文件
    with open('db','w') as fp:
        pickle.dump(data,fp)
    
    json实例
    #json.loads()#将字符串转换成python基本数据类型,注:里面一定要是双引号,外面是单引号
    import json
    s='{"name":"tina","age":"18"}'
    l='[1,2,3,4]'
    r=json.loads(l)
    w=json.loads(s)
    print(r,type(r))
    print(w,type(w))
    ############执行结果如下:###########
    [1, 2, 3, 4] <class 'list'>
    {'age': '18', 'name': 'tina'} <class 'dict'>
    #json.dumps()将python的基本数据类型转换成字符串
    a={"name":"tina","age":"18"}
    b=json.dumps(a)
    print(b,type(b))
    #############执行结果如下:##########
    {"age": "18", "name": "tina"} <class 'str'>
    
    #不带s的是对文件进行操作
    dic = {'k1':123,'k2':345}
    a=json.dump(dic,open('db','w'))
    print(a,type(a))
    #读内容
    #字符串转换成字典
    r=json.load(open('db','r'))
    print(r,type(r))
    #############执行结果如下:##########
    写入db文件中的内容即为dict
    {'k2': 345, 'k1': 123} <class 'dict'>
  • 相关阅读:
    NAS与SAN RAID
    使用slice和concat对数组的深拷贝和浅拷贝
    使用JSON.parse(),JSON.stringify()实现对对象的深拷贝
    ng2父子模块通信@ViewChild和@Inject
    js避免命名冲突
    JSON.parse()和JSON.stringify()
    object类型转换为Array类型
    Angular 2 ViewChild & ViewChildren
    ElementRef, @ViewChild & Renderer
    ng2父子模块数据交互
  • 原文地址:https://www.cnblogs.com/nick477931661/p/8550531.html
Copyright © 2020-2023  润新知