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语言实现系统时间校正工具代码分享 简介 本篇攻略将会介绍如何使用C语言实现一个系统时间校正工具。通过在代码中调用系统API和获取网络时间,来实现校准本地系统时间的功能,帮助用户更准确地记录时间,提高使用效率。 实现步骤 步骤一:引入头文件 首先,为了实现获取系统时间以及联网获取时间的功能,需要引入系统头文件time.h,以及获取网络时间需要用到的winso…

    C 2023年5月22日
    00
  • 基于Java实现Json文件转换为Excel文件

    基于Java实现Json文件转换为Excel文件的攻略: 引入相关依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.…

    C 2023年5月23日
    00
  • C语言代码实现通讯录管理系统

    C语言代码实现通讯录管理系统 1. 思路 通讯录管理系统主要分为三个模块:显示、添加、删除联系人。首先,我们需要定义一个联系人的结构体,包含姓名、电话、地址等基本信息。然后,通过数组来存储联系人信息,可以通过遍历数组来显示已有联系人,通过添加、删除数组中的元素来添加、删除联系人信息。 2. 代码实现 2.1 定义联系人结构体 在这个管理系统中,我们需要联系人…

    C 2023年5月23日
    00
  • Linux中生成Core Dump系统异常信息记录文件的教程

    生成Core Dump文件一般用于分析程序在运行过程中出现的异常情况,其中包含了详细的系统异常信息。下面是在Linux系统中生成Core Dump文件的教程: 1. 设置ulimit值 在生成Core Dump文件前,要先设置ulimit值,其中ulimit -c设置生成Core Dump文件的大小(单位:KB),ulimit -S -c 0表示不生成任何C…

    C 2023年5月23日
    00
  • VSCode下.json文件的编写之(1) linux/g++ (2).json中参数与预定义变量的意义解释

    下面是关于“VSCode下.json文件的编写之(1) linux/g++ (2).json中参数与预定义变量的意义解释”的完整攻略。 1. 简介 首先,我们应该知道,.json文件是一种轻量级的数据交换格式,可用于跨语言和跨平台传输数据,并且在VSCode中可以用来配置我们的编译环境。 在这个话题中,我们会讲解两个方面的内容:- (1) linux/g++…

    C 2023年5月23日
    00
  • Terry七月Ruby读书笔记(比较详细)第1/4页

    “Terry七月Ruby读书笔记(比较详细)第1/4页”攻略 1. 简介 “Terry七月Ruby读书笔记(比较详细)第1/4页”是一篇介绍Ruby编程语言的文章,主要分为四个部分,该攻略针对该文章第1/4页的内容进行详细讲解和分析。 2. 内容概述 在该笔记中,作者主要介绍了Ruby的基本数据类型和运算符。其中,介绍了Ruby的数字类型、字符串类型、布尔类…

    C 2023年5月23日
    00
  • Android audio音频流数据异常问题解决分析

    Android audio音频流数据异常问题解决分析 背景 在 Android App 开发中,有时候会遇到音频流数据异常的问题,比如音频丢失、卡顿、噪声过大等,这些问题都会影响用户的使用体验。本文将从分析、解决两个方面,详细讲解如何解决 Android audio音频流数据异常问题,以提高用户的使用体验。 分析 检查音频流数据来源 首先要检查音频流数据的来…

    C 2023年5月22日
    00
  • Go语言利用Unmarshal解析json字符串的实现

    下面我来详细讲解“Go语言利用Unmarshal解析JSON字符串的实现”。 什么是Unmarshal Unmarshal(解封)是将数据从某种格式转换为可操作的结构体等数据类型的过程。对于Golang来说,Unmarshal通常用于将JSON格式的数据解析为Golang的数据结构,以便于进行数据的操作和处理。 Golang利用Unmarshal解析JSON…

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