【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"
          }
          
          

你可能感兴趣的:(Python,json)