Python中的JSON数据【学习记录】

本文详细介绍了Python中处理JSON数据的方法,包括JSON模块的使用,如序列化和反序列化,json.loads和json.dumps函数,以及如何处理JSON数据文件。此外,还探讨了pandas库在读取和生成JSON数据方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 JSON数据

  • JSON(JavaScript Object Notation的简称,JS 对象标记)已经成为通过HTTP请求在Web浏览器和其他应⽤程序之间发送数据的标准格式之⼀。
  • JSON是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式(存在区别),里面可以包含方括号括起来的数组,也就是python里面的列表。

在这里插入图片描述

2.1 JSON模块

  • 在python中提供了专门处理JSON格式的模块之一即是JSON模块。
  • 要使用JSON模块必须先导入该模块:
import json

2.1.1 序列化和反系列化

  • 序列化:服务器端根据前端的请求,从数据库获取数据组织成前端可以识别的格式发给前端。
  • 反序列化:客户端接收服务器返回的数据,展示到屏幕上。
  • python的Json模块序列化与反序列化的过程分别是 encoding和 decoding。
    encoding-把一个Python对象编码转换成Json字符串,对应JSON模块的dump和dumps函数
    decoding-把Json格式字符串解码转换成Python对象,对应JSON模块的load和loads函数。

2.1.2 数据类型转换

  • JSON可以表示4种主类型数据和2种数据结构:

    1.字符串 string
    2.数字 number
    3.布尔类 boolean
    4.空值 null
    5.对象 object
    6.数组 array

  • JSON和python之间的数据转换对应关系如下:

JSONpython
stringstr
number(int)int
number(real)float
trueTrue
falseFalse
nullNone
objectdict
arraylist

2.2 读取JSON(反序列化)

2.2.1 json.loads方法

  • json.loads方法可以将包含了一个JSON数据的str, bytes或者bytearray对象, 转化为一个python数据对象。
  • 语法:
json.loads(
    s,
    *,
    encoding=None,
    cls=None,
    object_hook=None,
    parse_float=None,
    parse_int=None,
    parse_constant=None,
    object_pairs_hook=None,
    **kw,
)

在这里插入图片描述

2.2.2 双引号注意

  • 在JSON中, 字符串数据只能放在双引号中(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)。
  • json.loads方法处理的字符串的JSON内容中, 字符串必须使用双引号,否则就会发生解码错误。

在这里插入图片描述* 被处理的Python字符串是包含在双引号中的, 那么JSON中的双引号就需要转义。

在这里插入图片描述

2.2.3 处理JSON数据文件

  • 当JSON数据是保存在一个文件中的时候, json.load方法可以用来从这个文件中读取数据, 并转换为Python对象。
  • json.load方法的第一个参数就是指向JSON数据文件的文件类型对象。

在这里插入图片描述

2.3 生成JSON(序列化)

2.3.1 json.dump/dumps方法

  • json.dumps方法可以将Python对象转换为JONS格式。
  • 语法:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

在这里插入图片描述* python中的类型与JSON的数据转换关系如下:

pythonJSON
strstring
int,float…number
number(real)float
Truetrue
Falsefalse
Nonenull
objectdict
list,tuplearray

2.3.2 参数说明

  • indent参数:控制JSON字符串的换行和缩进效果

    1.默认值为None,无换行和缩进
    2.当indent为0或者负数时, JSON字符会包含换行
    3.当indent为正整数时, 除了换行, JSON还会以指定数量的空格为单位在对象层次间进行缩进
    4.indent可以是str,JSON会以str内容为单位进行缩进

在这里插入图片描述

2.3.3 生成JSON文件

  • 需要将生成的JSON数据保存到文件时, 可以使用json.dump方法。
  • 该方法比json.dumps多了一个参数fp, 这个参数就是用来保存JSON数据的文件对象。

在这里插入图片描述在这里插入图片描述

3.1 利用pandas读取和生成JSON

3.1.1 read_json()

  • pandas.read_json()可以⾃动将特别格式的JSON数据集转换为Series或DataFrame。

在这里插入图片描述

3.1.2 to_json()

  • pandas.to_json()可以将数据从pandas输出到JSON。

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值