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


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 数据类型对应

PythonJSON说明
dictobject字典
list,tuplearray序列
strstring字符串
int,floatnumber数字类型
Truetrue布尔值True
Falsefalse布尔值False
Nonenull空值

因为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)
#打印结果:<class 'str'> [{"a": 1, "b": "2", "c": true, "d": false, "e": null}]

# 将 JSON 字符串解码为 python 对象
python_data = json.loads(json_data)
print(type(python_data),python_data)
#打印结果:<class 'list'> [{'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
}

"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值