• json 和 pickel 详解


    一、json

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

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

    1、json.loads()用于将字符串形式的字典,列表转换成相应的字典,列表(元祖不可以,应为其他语言中没用元祖)

    import json
    
    a="[1,2,3,4]"
    b='{"k1":1,"k2":2}'#当字符串为字典时{}外面必须是''单引号{}里面必须是""双引号
    print(json.loads(a))
    print(json.loads(b))
    
    [1, 2, 3, 4]
    {'k2': 2, 'k1': 1}
    

     2、json.dumps() 用于将列表,字典,元祖转换成字符串。其中元祖转变成字符串为列表形式

    python中的字符串分普通字符串和unicode字符串,一般从数据库中读取的字符串会自动被转换为unicode字符串

    import json
    a = [1,2,3,4]
    b ={"k1":1,"k2":2}
    c = (1,2,3,4)
    
    print(json.dumps(a))
    print(json.dumps(b))
    print(json.dumps(c))
    

     可以看到这里输出的字符串为普通字符串,但是里面的内容却是unicode字符串的内容

    要想得到字符串的真实表示,需要用到参数ensure_ascii=False(默认为True)

    import json
    b = {"name":"我"}
    print(json.dumps(b,ensure_ascii=False))
    
    {"name": "我"}
    

    3、 json.dump()把一个字典或列表以字符串的形式写到文件中

    import json
    a = [1,2,3,4]
    json.dump(a,open("texe.py","w"))
    

     4、json.load() 把在文件中以列表、字典形式保存的字符串元素读出来

    import json
    a = [1,2,3,4,1]
    ap = json.load(open("texe.py"))
    print(ap)
    

     二、pickle

       pickle   用于【特殊的字节类型】 和 【python数据类型】间进行转换

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

    1、pickle.dumps() 用于将python中特有的数据类型转换成特殊的字节类型

    import pickle
    a = [1,2,3,4]
    f = pickle.dumps(a)
    print(f)
    print(type(f))
    h = json.dumps(a)
    
    
    b'x80x03]qx00(Kx01Kx02Kx03Kx04e.'
    <class 'bytes'>
    

     2、 pickle.loads()用于将特殊字节类型转换成python特有的数据类型

    import pickle
    a = [1,2,3,4]
    f = pickle.dumps(a)
    print(f)
    print(type(f))
    print(pickle.loads(f))
    
    b'x80x03]qx00(Kx01Kx02Kx03Kx04e.'
    <class 'bytes'>
    [1, 2, 3, 4]
    

     3、 pickle.dump()把python中特有的数据类型以特殊字节的形式写到文件中(其中文件都是以字节方式打开)

    import pickle
    a = [1,2,3,4]
    pickle.dump(a,open("aaa.py","wb"))
    

     4、json.load() 把在文件中以特殊字节保存的数据读出来

    import pickle
    ret = [1,2,3,4]
    pickle.dump(ret,open("aaa.py","wb"))
    p = pickle.load(open("aaa.py","rb"))
    print(p)
    

     ===================总结=============================

    json      1、用于多语言间的相互转换

              2、无论是否写到文件中,json都是列表、字典、元祖和字符串之间的相互转换

    pickle   1、只适用于python 

          2、无论是否写到文件中,pickle都是用于python中所有数据类型和只有python才能解析的特殊字节间的相互转换

          3、如果涉及到写到文件中,打开方式必须是以字节方式打开

  • 相关阅读:
    异步请求与中断 ( XHR,Axios,Fetch对比 )
    界面组件Telerik UI for WPF入门指南 如何在运行时切换主题
    界面控件Telerik UI for WinForms入门指南 使用VS下载新版本
    Web界面开发框架DevExtreme v21.2 增强Data Grid功能
    DevExpress WPF入门指南 运行时生成的POCO视图模型(二)
    DevExpress WPF入门指南 运行时生成的POCO视图模型(三)
    B/S端界面控件DevExtreme ASP.NET MVC入门指南 模板语法(二)
    DevExpress跨平台产品——为.NET 7做好准备
    B/S端界面控件DevExtreme ASP.NET MVC入门指南 模板语法(三)
    UI组件Kendo UI for jQuery数据管理教程 TaskBoard/资源
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/5574079.html
Copyright © 2020-2023  润新知