当前位置: 首页 > article >正文

【Python标准库】json

1.json库是用来做什么的?

        完全独立于程序语言的轻量文本数据交换格式,用来生成和解析json数据格式的库

2.json的2种数据结构
  • 第一种:键值对
    • 语法:{"key":value,,,,}
  • 第二种:有序列表    
3.json和python的数据类型比对 

Python

JSON

dict

object

list,tuple

array

str

string

数字类型

Number

True

true

False

false

NONE

null

4.json方法
        反序列化:将json字符串转换为其他数据结构/对象
  • json.load(obj)
    • ​​​​​​​读取json文件并转换为python对象
    • 应用场景:
      • 读取json文件
        • with open("json_file.json") as fp:
          
              al = json.load(fp)
          
              print(al)
          
          
          
          最终输出结果:
          
          
              {'name': 'Mona', 'age': 28, 'isFemale': True}
  • ​​​​​​​json.loads(obj)
    • 将json字符串转换为python对象
序列化:将其他数据结构转换为json字符串
  • json.dump(obj,file[,indent][,ensure_ascii][,sort_keys][,separators])
    • 将python对象转换为json字符串并写入文件
    • 应用场景:
      • 写入json文件
        • import json
          
          dict = {
              'name':'Mona', 'age':28,'isFemale':True
          }
          with open("json_file.json","w") as fp:
          
              json.dump(dict, fp)
          
          
          最终生成json文件,内容如下:
          
              {"name": "Mona", "age": 28, "isFemale": true}
  • ​​​​​​​json.dumps(obj[,indent][,ensure_ascii][,sort_keys][,separators])
    • 将Python对象转换为json字符串
    • 参数indent是缩进空格
      • dict = {
            'name':'Mona', 'age':28,'isFemale':True
        }
        j_dict = json.dumps(dict,indent=4)
        
        print(j_dict)
        
        最终结果:
        
        {
            "name": "Mona",
            "age": 28,
            "isFemale": true
        }
    • 参数ensure_ascii 非ascii的进行转移
      • 默认为True
        • 场景1: 使用默认值True
          
          import json
          dict = {
              'name':'Mona', 'age':28,'isFemale':True,'com':'坚持'
          }
          j_dict = json.dumps(dict,indent=4,ensure_ascii=True)
          
          print(j_dict)
          
          最终输出结果:
          
          {
              "name": "Mona",
              "age": 28,
              "isFemale": true,
              "com": "\u575a\u6301"
          }
          ----------------------------------------------------
          场景2: 使用False
          
          import json
          dict = {
              'name':'Mona', 'age':28,'isFemale':True,'com':'坚持'
          }
          j_dict = json.dumps(dict,indent=4,ensure_ascii=False)
          
          print(j_dict)
          
          最终输出结果:
          
          {
              "name": "Mona",
              "age": 28,
              "isFemale": true,
              "com": "坚持"
          }
    • 参数sort_keys  编码顺序输出
      • 默认为False
        • 场景1: 键按照字母顺序升序输出
          
          import json
          dict = {
              'name':'Mona', 'age':28,'isFemale':True,'com':'坚持'
          }
          j_dict = json.dumps(dict,indent=4,sort_keys=True)
          
          print(j_dict)
          
          最终输出结果:
          
              {
              "age": 28,
              "com": "\u575a\u6301",
              "isFemale": true,
              "name": "Mona"
          }
          
          


http://www.kler.cn/a/153689.html

相关文章:

  • 【Android】Window和WindowManager
  • UData+StarRocks在京东物流的实践 | 京东物流技术团队
  • 快照读通过MVCC解决不可重复读当前读通过间隙锁解决幻读
  • Linux破解用户密码【基于redhat9】
  • 电子印章管理系统:是什么、3个平台推荐
  • Vulhub-信息泄露
  • 数据结构 / 队列 / 循环队列 / 概念
  • Redis基本命令
  • SQL-分页查询offset的用法
  • Linux部分基础指令讲解
  • Hdoop学习笔记(HDP)-Part.14 安装YARN+MR
  • B.牛牛排队伍——模拟双链表
  • IntelliJ IDEA安装使用教程
  • Redis——某马点评day01——短信登录
  • 【蓝桥杯选拔赛真题51】python最小下标 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  • CSS 绝对定位问题和粘性定位介绍
  • 【九】linux下部署frp客户端服务端实践(内网穿透)
  • Elasticsearch(一)
  • C++学习寄录(九.多态)
  • Python学习路线 - Python语言基础入门 - 准备工作