json 学习笔记

参考资料:Json 详解,5分钟学会_哔哩哔哩_bilibili

1.json数据格式的优势

json是一种文本数据格式,来源于javaScript对象语法。json本质上是一种文本规范,或一种字符串规范。json可以简单灵活地表示树型结构的数据。与其他数据格式如XML比较,json的结构更加简洁,没有多余的标记,因此在网络中传输时可以减少数据量,提高效率。

在这里插入图片描述

需要注意的是在程序中使用json数据,需要特定方法转化为对象变量才能使用。

2.json支持的值类型

不允许内嵌其他值的值类型

1.字符串

需要包含在一对双引号内" ",字符串内如果有双引号需要转义\

2.数字

整数、浮点数

3.布尔值

truefalse

4.空值

允许内嵌的值类型

5.对象,键/值对字典(哈希表)
{"key1":"value1","key2":123,"key3":{}}

·需要包含在一对{}之内

·用,隔开多个键值对,最后一个键值对后不能添加

·键值对的键必须为字符串

·值可以为任意值类型,且不需要统一

6.数组
["value1",true,[],123]

·需要包括在一对[]之内

·用,隔开多个值,且最后一个值后不能添加,

·数组的值可以是6种值类型的任意一种,且无需统一类型

在 json 标准中,对于数组和对象的长度以及它们可以嵌套的深度没有做出具体的限制。

3.python种JSON的使用

函数描述
load()JSON 文件读取数据,并将其解码成 Python 对象。
loads()解析 JSON 格式的字符串,返回 Python 对象。
dump()将 Python 对象编码成 JSON 格式,并写入 JSON 文件中。
dumps()将 Python 对象编码成 JSON 格式的字符串。

1. json.load(fp)

这个函数从一个 file-like object 中读取 JSON 数据,并将其反序列化为 Python 对象。这在从文件中加载 JSON 数据时非常有用。

参数说明:

  • fp: 一个打开的支持 .read() 方法的 file-like object。

用例:

import json

# 打开一个包含 JSON 数据的文件
with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)

2. json.loads(s)

这个函数将一个 JSON 格式的字符串解码为 Python 对象。当处理从网络接口或其他来源接收的 JSON 字符串时,这个函数非常有用。

参数说明:

  • s: 包含 JSON 数据的字符串。

用例:

import json

json_string = '{"name": "Carol", "age": 28, "is_student": false}'

# 解码 JSON 字符串
data = json.loads(json_string)
print(data)

通过这些函数,你可以方便地在 Python 对象和 JSON 格式之间进行转换,无论是处理文件还是处理网络传输的数据。

3. json.dump(obj, fp, ...)

这个函数用于将 Python 对象序列化为 JSON 格式,并直接写入到一个文件中。这是处理 Python 对象存储到文件中时非常有用的函数。

参数说明:

  • obj: 要序列化的 Python 对象。
  • fp: 一个打开的文件对象,或者任何支持 .write() 方法的 file-like object。
  • 其他可选参数,如 indent 用于美化输出,使其更易于阅读。

用例:

import json

data = {
    'name': 'Alice',
    'age': 25,
    'is_student': False
}

# 打开一个文件用于写入
with open('data.json', 'w') as f:
    json.dump(data, f, indent=4)

4. json.dumps(obj, ...)

这个函数将 Python 对象序列化为一个 JSON 格式的字符串。适用于需要将对象转化为字符串以便在网络上传输或其他需要字符串形式的场合。

参数说明:

  • obj: 要序列化的 Python 对象。
  • 其他可选参数,如 indent

用例:

import json

data = {
    'name': 'Bob',
    'age': 30,
    'is_student': True
}

# 序列化为 JSON 字符串
json_string = json.dumps(data, indent=4)
print(json_string)
  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值