zoukankan      html  css  js  c++  java
  • python(json 模块)

    1.Json 定义

    • 定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。JSON 的数据格式其实就是 python 里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
    • 特点:简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
    • 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
      • 对象表示为键值对  
      • 数据由逗号分隔  
      • 花括号保存对象
      • 方括号保存数组  
    • 序列化简单定义:变成 json 格式。定义:变成json格式。
    • 反序列化简单定义: json 格式变其它
    """
    字典格式与json格式对比
    """
    # 字典格式:
    d = {            
    'a': 123,
    'b': {
    'x': ['A', 'B', 'C']
    }
    }
    
    # json格式
    {
    "a": 123,
    "b": {                #必须是双引号(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)
    "x": ["A", "B", "C"]
    }
    } 
    • 在 python 中,有专门处理 Json 格式的模块  ——>  json 和 picle模块
    • Json 模块提供了四个方法: dumps、dump、loads、load
    • pickle 模块也提供了四个功能:dumps、dump、loads、load

    2.json.dumps() 序列化

    • 将 python 的值转换为 Json 格式的字符串。 
    import json
    
    res = {
        "userAccount":"admin",
        "loginPwd":"123456"
    }
    
    print(type(res))
    du_res = json.dumps(res)
    # print(du_res)
    print(type(du_res))
    
    #结果如下
    <class 'dict'>
    <class 'str'>
    #json序列化过程中的中文显示
    import json
    
    res = {
        "userAccount":"管理员",
        "loginPwd":"123456"
    }
    
    du_res = json.dumps(res)
    print(du_res)
    
    #结果如下
    {"userAccount": "u7ba1u7406u5458", "loginPwd": "123456"}
    
    #转码
    import json
    
    res = {
        "userAccount":"管理员",
        "loginPwd":"123456"
    }
    
    du_res = json.dumps(res,ensure_ascii=False)
    print(du_res)
    
    #结果如下
    {"userAccount": "管理员", "loginPwd": "123456"}

    3.json.loads() 反序列化

    • 将 json 格式的字符串转换成 python 的数据类型  
    import json
    
    res = {
        "userAccount":"管理员",
        "loginPwd":"123456"
    }
    
    du_res = json.dumps(res,ensure_ascii=False)
    print(type(du_res))
    
    #将 json 格式的字符串转换成 python 的数据类型 dict
    lo_res = json.loads(du_res)
    print(type(lo_res))
    
    #结果如下
    <class 'str'>
    <class 'dict'>

    4.json.dump() 序列化

    #dump将内容序列化,并写入打开的文件中。
    
    import json
    
    v = {'k1':'yh','k2':'小马过河'}
    f = open('xiaoma.txt',mode='w',encoding='utf-8') #文件不存在就会生成
    val = json.dump(v,f)
    print(val)
    f.close()
    
    #结果如下
    None

    5.json.load() 反序列化

    import json
    
    f = open('xiaoma.txt',mode='r',encoding='utf-8')
    data = json.load(f)
    f.close()
    print(data,type(data))
    
    #结果如下
    {'k1': 'yh', 'k2': '小马过河'} <class 'dict'>
  • 相关阅读:
    2017——我们为什么选择JAVA?JAVA的发展方向和学习方法(必看)
    Java
    4中引用(强,软,弱,虚)侧重弱引用
    面试常见问题
    一个牛人给java初学者的建议
    java转换图片压缩生成webp格式
    JVM-String常量池与运行时常量池
    轮滑基础(一)(前摔,葫芦步,推步,A字转弯,弓步转弯)
    单词本
    可空值 DateTime? ToString("yy-MM-dd")
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12530543.html
Copyright © 2011-2022 走看看