Python 中的json常见用法实例详解

Python 中的 JSON 常见用法实例详解

什么是 JSON?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于 JavaScript 的语法规则,但具有更加简单易读的特点。JSON 格式的数据可以被快速解析和生成,是一种纯文本格式,可以通过网络进行通信,也可以存储在本地。因此它在 Web 应用中得到了广泛的使用。

一个 JSON 格式的数据通常由 key/value 键值对组成,其中 key 通常为字符串类型,而 value 可以是任意 JSON 支持的数据类型。

Python 中的 JSON 库

Python 中提供了一个内置的 json 模块,用于对 JSON 格式的数据进行解析和生成。

解析 JSON 数据

Python 中,可以使用 json.loads() 方法将 JSON 格式的字符串转换为 Python 对象(如字典、列表)。

import json

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

输出结果为:

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

生成 JSON 数据

Python 中,可以使用 json.dumps() 方法将 Python 对象(如字典、列表等)转换为 JSON 格式的字符串。

import json

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

输出结果为:

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

处理 JSON 文件

Python 中,可以使用 json.load() 方法读取 JSON 文件并生成 Python 对象,也可以使用 json.dump() 方法将 Python 对象写入 JSON 文件。

import json

# 读取 JSON 文件并生成 Python 对象
with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)

# 将 Python 对象写入 JSON 文件
data = {'name': 'Tom', 'age': 18}
with open('data.json', 'w') as f:
    json.dump(data, f)

其中,data.json 为 JSON 格式的文件。

示例说明

示例1:解析 JSON 数据并处理

假设有一个名为 data.json 的 JSON 格式文件,其内容如下:

{
    "name": "Tom",
    "age": 18,
    "gender": "male",
    "hobbies": ["reading", "swimming"],
    "scores": {
        "math": 90,
        "english": 85
    }
}

现在需要对这个数据进行处理,可以采用以下方式:

import json

# 读取 JSON 文件并生成 Python 对象
with open('data.json', 'r') as f:
    data = json.load(f)
    print(f'name:{data["name"]}')
    print(f'age:{data["age"]}')
    print(f'gender:{data["gender"]}')
    print(f'hobbies:{data["hobbies"]}')
    print(f'scores:{data["scores"]}')

输出结果为:

name:Tom
age:18
gender:male
hobbies:['reading', 'swimming']
scores:{'math': 90, 'english': 85}

示例2:生成 JSON 数据并写入文件

假设需要生成以下 JSON 格式的数据,并写入到指定文件中。

[
    {
        "name": "Tom",
        "age": 18
    },
    {
        "name": "Lucy",
        "age": 20
    }
]

可以采用以下代码:

import json

data = [
    {
        "name": "Tom",
        "age": 18
    },
    {
        "name": "Lucy",
        "age": 20
    }
]

# 将 Python 对象写入 JSON 文件
with open('result.json', 'w') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

其中,ensure_ascii=False 表示在输出结果中不使用 ASCII 编码,indent=4 表示输出结果显示时,使用 4 个空格作为缩进。

输出结果为:

[
    {
        "name": "Tom",
        "age": 18
    },
    {
        "name": "Lucy",
        "age": 20
    }
]

以上是示例说明,更多关于 Python 中 JSON 的使用,请参考官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 中的json常见用法实例详解 - Python技术站

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

相关文章

  • 基于C++实现一个简单的音乐系统

    基于C++实现一个简单的音乐系统攻略 1. 确定功能需求 在实现一个简单的音乐系统之前,需要明确该系统的功能需求。可能的需求包括但不限于: 音乐播放 音乐暂停 音乐停止 音乐切换 播放列表管理 音量调节等 2. 确定系统设计方案 给定功能需求以后,需要对系统进行设计,包括但不限于: 系统模块设计 数据处理设计 界面设计 设计系统结构 3. 实现代码 3.1 …

    C 2023年5月23日
    00
  • C++通信新特性协程详细介绍

    C++通信新特性协程详细介绍 协程是一种程序控制结构,它可以暂停和继续执行,使得程序的流程可以在某个特定位置上暂停下来,并在需要的时候从相同的位置继续执行,而无需等待当前操作完成。C++20引入了协程的支持,使得程序员可以更为方便地使用协程来实现异步任务和并发编程。 协程的基本概念 C++协程是C++20中新引入的编程特性,它通过co_await关键字来实现…

    C 2023年5月22日
    00
  • C语言 简单秒表程序

    下面详细讲解一下C语言编写简单秒表程序的使用攻略。 程序介绍 秒表程序是一种计时器程序,用来计算时间间隔的长度。这个程序可以帮助你记录时间,无论你需要记录时间的目的如何。通过这个程序你可以在计时的时候进行一些其他工作,例如游戏时间等等,程序的主要功能是启动、停止和重置计时器,并在计时过程中实时更新显示的时间。 程序使用攻略 程序逻辑分析 在编写程序之前,我们…

    C 2023年5月9日
    00
  • C++ sleep()和usleep()的区别

    C++ sleep()和usleep()的区别 在C++的编程中,为了控制程序的执行节奏,经常需要使用时间控制函数。其中较常用的是sleep()和usleep(),它们的使用场景和功能有所不同,下面详细讲解它们的区别。 sleep() sleep()是C++标准库中的函数之一,位于头文件 “unistd.h” 中。它用于令程序进入休眠状态,以某种指定的时间为…

    C 2023年5月22日
    00
  • Linux折腾记(六):感悟GNU C及把Vim打造成C/C++的半自动化IDE

    下面是“Linux折腾记(六):感悟GNU C及把Vim打造成C/C++的半自动化IDE”的完整攻略。 感悟GNU C GNU C是一种开源的C语言编译器,它能够将C语言源代码编译成可执行文件。使用GNU C编译器可以提高代码的效率和可移植性,同时也可以更好地理解C语言的设计和原理。 在使用GNU C编译器时,我们需要掌握C语言标准库的使用方法,以及编译器的…

    C 2023年5月23日
    00
  • C语言中实现itoa函数的实例

    C语言中实现itoa函数的实例 什么是itoa函数? itoa函数是C++的标准库函数,可以将整型数据转换成对应的字符串。但在C中并没有该函数,为了方便C程序员的编程,我们需要自己实现该函数。 实现itoa函数的过程 实现itoa函数主要包括以下几个步骤: 判断待转换的整数是否为负数,如果是负数,则需要在最终的字符串前面添加负号。 将整型数按位分解,得到每个…

    C 2023年5月23日
    00
  • 使用VS2019编译CEF2623项目的libcef_dll_wrapper.lib的方法

    下面是使用VS2019编译CEF2623项目的libcef_dll_wrapper.lib的方法的完整攻略。 准备工作 首先需要准备CEF2623的源代码和编译环境,确保以下步骤顺利进行。 下载CEF2623的源代码。可以到官网(https://bitbucket.org/chromiumembedded/cef/src/2623/)下载。 安装Visual…

    C 2023年5月23日
    00
  • Python代码一键转Jar包及Java调用Python新姿势

    Python代码一键转Jar包及Java调用Python新姿势是一个实现Python与Java语言互操作的方法,以下是详细攻略。 环境准备 需要安装Java Development Kit (JDK)和Python,并添加到系统环境变量中。 还需要安装PyInstaller模块。可以在命令行中使用以下命令进行安装: pip install pyinstall…

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