【python】(十四)python内置库——json

目录

  • 1. JSON
  • 2. JSON 结构
  • 3. python 与 JSON 数据类型对应
  • 4. json 库
  • 5. 常用方法
  • 6. dumps 常用参数


1. JSON

  • JSON 是用于存储和交换数据的语法,是一种轻量级的数据交换格式。

  • JSON的使用场景

    1. 接口数据传输
    2. 序列化
    3. 配置文件(由于可读性差,有更好的语言来替代)

2. JSON 结构

  • 键值对形式
  • 数组形式
{
    "language": [
        {
            "name": "python",
            "url": "https://www.python.org/"
        },
        {
            "name": "java",
            "url": "https://www.java.com/zh-CN/"
        }
    ]
}

3. python 与 JSON 数据类型对应

Python JSON 说明
dict object 字典
list,tuple array 序列
str string 字符串
int,float number 数字类型
True true 布尔值True
False false 布尔值False
None null 空值

因为python和json中的数据类型存在差异,因此python中的数据不能直接被json使用,需要进行转换才可正常使用。

4. json 库

  • 可以从字符串或文件中解析 JSON
  • 该库解析 JSON 后将其转为 Python 字典或者列表

5. 常用方法

  • dumps():将 Python 对象编码成 JSON 字符串
  • loads():解码 JSON 数据,该函数返回 Python 对象
  • dump(): Python 对象编码,并将数据写入 json 文件中
  • load():从 json 文件中读取数据并解码为 Python 对象
import json

# 定义 python 结构
data = [{'a': 1, 'b': '2', 'c': True, 'd': False, 'e': None }]
print(type(data))
#打印结果:list

# 将 python 对象编码为 JSON 字符串
json_data = json.dumps(data)
print(type(json_data),json_data)
#打印结果: [{"a": 1, "b": "2", "c": true, "d": false, "e": null}]

# 将 JSON 字符串解码为 python 对象
python_data = json.loads(json_data)
print(type(python_data),python_data)
#打印结果: [{'a': 1, 'b': '2', 'c': True, 'd': False, 'e': None}]

# 写入 JSON 数据,在代码当前目录生成一个 data.json 的文件
with open('data.json', 'w') as f:
     json.dump(data, f)

# 读取数据,读取 json 文件并解码成 python 对象
with open('data.json', 'r') as f:
     data = json.load(f)

6. dumps 常用参数

  • indent:根据数据格式缩进显示,默认为 None,没有缩进
  • ensure_ascii:对中文使用 ASCII 编码,默认为 True
import json

data = {
    'a': 1, 
    'b': '高胖胖', 
    'c': True, 
    'd': False, 
    'e': None }

python_data = json.dumps(data, indent=4, ensure_ascii=False)
print(python_data)

"""
打印结果:
{
    "a": 1,
    "b": "高胖胖",
    "c": true,
    "d": false,
    "e": null
}

"""

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