Python Json模块中dumps、loads、dump、load函数介绍

Python Json模块中dumps、loads、dump、load函数介绍

一、Json模块介绍

Json(JavaScript Object Notation)是一种轻量级的数据交换格式,具有良好的可读性和易于编写的特点,因此广泛应用于网络传输和存储等方面。在Python中,我们可以使用内置的Json模块来进行Json数据的处理。Json模块主要包含以下四个核心函数:

  • json.dumps():将Python对象编码成Json数据格式字符串。
  • json.loads():将Json数据格式字符串解码为Python对象。
  • json.dump():将Python对象序列化并以Json数据格式写入文件。
  • json.load():从Json数据格式文件中读取数据并反序列化为Python对象。

二、dumps函数

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):该函数将Python对象编码成Json数据格式字符串。其中,obj为要序列化的Python对象,其他参数可以根据需求进行设置。

示例一:

import json

data = {'name': 'Tom', 'age': 20}
json_str = json.dumps(data)
print(json_str)

输出结果:

{"name": "Tom", "age": 20}

示例二:

import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def reprJSON(self):
        return self.__dict__

p = Person('Tom', 20)
json_str = json.dumps(p.__dict__)
print(json_str)

输出结果:

{"name": "Tom", "age": 20}

三、loads函数

json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):该函数将Json数据格式字符串解码为Python对象。其中,s为要解码的Json字符串,其他参数可以根据需求进行设置。

示例一:

import json

json_str = '{"name": "Tom", "age": 20}'
data = json.loads(json_str)
print(data)

输出结果:

{'name': 'Tom', 'age': 20}

示例二:

import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def fromJson(json_str):
        json_data = json.loads(json_str)
        return Person(**json_data)

json_str = '{"name": "Tom", "age": 20}'
p = Person.fromJson(json_str)
print(p.name, p.age)

输出结果:

Tom 20

四、dump函数

json.dump(obj, fp, *, 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数据格式写入文件。其中,obj为要序列化的Python对象,fp为要写入的文件对象,其他参数可以根据需求进行设置。

示例一:

import json

data = {'name': 'Tom', 'age': 20}
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f)

示例二:

import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def reprJSON(self):
        return self.__dict__

p = Person('Tom', 20)
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(p.__dict__, f)

五、load函数

json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):该函数从Json数据格式文件中读取数据并反序列化为Python对象。其中,fp为要读取的文件对象,其他参数可以根据需求进行设置。

示例一:

import json

with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
print(data)

输出结果:

{'name': 'Tom', 'age': 20}

示例二:

import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def fromJson(json_str):
        json_data = json.loads(json_str)
        return Person(**json_data)

with open('data.json', 'r', encoding='utf-8') as f:
    json_str = f.read()
p = Person.fromJson(json_str)
print(p.name, p.age)

输出结果:

Tom 20

综上所述,Json模块中的这四个核心函数各自的作用如上所述,在使用中可以根据需要选用相应的函数进行操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Json模块中dumps、loads、dump、load函数介绍 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++ 中消息队列函数实例详解

    C++中的消息队列(Message Queue)是一种在多线程编程中极为实用的技术,可以用于在不同线程之间传递信息和数据。C++标准库中提供了一些消息队列函数可以用于创建、发送和接收消息。本文将对消息队列函数进行详解。 创建消息队列 在C++中,可以使用std::queue类对象来创建一个消息队列。在使用std::queue之前需要使用包含的头文件。 #in…

    C 2023年5月23日
    00
  • C语言程序 演示fork()和pipe()

    C语言程序演示fork()和pipe()的使用攻略 什么是fork()和pipe()? fork()是在Linux系统中用来创建新进程的系统调用函数。使用fork()函数可以创建出一个子进程,该子进程是父进程的一个副本,且会与父进程一同运行,但是有不同的pid和返回值。fork()函数被调用时,当前进程将会被复制一份,形成一个新的进程和父进程同步进行。新的进…

    C 2023年5月9日
    00
  • C++实现KFC点餐系统

    C++实现KFC点餐系统 介绍 KFC点餐系统是一个比较基础和实用的点餐系统,程序的主要功能是菜单的展示,菜品的选购和账单的结算,适合初学者学习C++的面向对象编程思想。 设计 系统主要结构通过类和对象来实现,主要包括管理类,订单类, 菜品类和顾客类,其中管理类为整个系统的核心,负责菜单的初始化和展示、订单管理以及结算等操作。 核心功能 1. 菜单初始化和展…

    C 2023年5月23日
    00
  • 微星第一台27英寸游戏显示器Optix G27C:刷新率144Hz

    微星第一台27英寸游戏显示器Optix G27C:刷新率144Hz 介绍 微星Optix G27C是一款27英寸的曲面显示器,专为游戏爱好者而设计。它具有144Hz的刷新率和1ms的响应时间,可以在玩游戏时提供流畅的画面和反应速度。该显示器支持AMD FreeSync技术,可以减少延迟和撕裂,并提供更清晰的图像。 操作步骤 步骤1:连接显示器 将显示器从包装…

    C 2023年5月22日
    00
  • 英语打字练习软件-c语言编写

    ​学习c语言的时候编写的英语打字练习软件,已经上传github 自取 https://github.com/grey-wood-wolf/typing-software   软件实际效果如下 在下载的压缩包里,运行exe文件就可使用,源码为ConsoleApplication1这个文件      部分代码如下: void welcom()//介绍 { int…

    C语言 2023年4月18日
    00
  • 使用emacs编写C语言教程

    使用emacs编写C语言教程的完整攻略包含以下步骤: 安装emacs 首先需要安装emacs,可以参考本网站的Emacs教程进行安装。 配置C语言环境 安装好emacs后,需要配置C语言环境。可以使用MELPA进行安装irony-mode,该模式可以提供C语言的代码补全、语法检测等功能。 具体安装步骤如下: 打开emacs,使用M-x package-ins…

    C 2023年5月23日
    00
  • 蓝屏代码0xc0000001是什么原因?蓝屏代码0xc0000001解决方法汇总

    蓝屏代码0xc0000001是什么原因? 在 Windows 操作系统中,蓝屏代码 0xc0000001 表示一个致命的系统错误,导致计算机无法继续工作。该错误代码通常与系统启动、恢复和内核数据读取有关。以下是可能导致蓝屏代码 0xc0000001 的几个常见原因: 损坏的引导记录或分区表; 损坏的操作系统文件; 损坏的驱动程序; 损坏的硬件,如硬盘、内存和…

    C 2023年5月24日
    00
  • python 中if else 语句的作用及示例代码

    当我们需要根据某个条件来执行不同的代码,就需要使用到if else语句。if else语句在Python中非常常见且非常重要,其基本结构如下: if 条件: # 条件成立时要执行的代码块 else: # 条件不成立时要执行的代码块 其中,条件可为任何可以转换成布尔值True或者False的表达式,如比较运算符(>、<、==、!=等)、逻辑运算符(…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部