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++ hook 钩子的使用介绍

    浅谈C++ Hook 钩子的使用介绍 1. 什么是Hook钩子? Hook钩子是一种可以监控和修改系统、进程或应用程序行为的技术。在Windows操作系统下,可以通过Hook技术对API函数进行钩取,实现拦截API调用并进行自定义的处理。 2. Hook钩子的类型 在Windows操作系统中,可以使用以下两种类型的Hook钩子: 2.1 系统级钩子 系统级钩…

    C 2023年5月30日
    00
  • C++中引用的相关知识点小结

    C++中引用是一个非常重要的概念,使用它可以有效地提高代码的可读性和性能。本文将介绍引用的相关知识点,并通过示例说明如何使用引用。 引用的概念和基本语法 引用是一个已经存在的变量的别名,通过这个别名可以访问到这个变量的值。在C++中,通过在变量名前加“&”符号来定义一个引用。例如: int a = 1; int& b = a; 这里的“b”就…

    C 2023年5月22日
    00
  • PPT怎么随意绘制带c图形?

    下面我将为您详细讲解如何在PPT中随意绘制带c图形。 1. 使用PPT自带的绘图工具 PPT自带了许多绘图工具,对于一些简单的图形,使用这些工具已经足够了。 首先,打开您的PPT文档,然后选择“插入”菜单中的“形状”,在下拉菜单中选择您需要的形状,例如圆形、矩形等。 接着,在您的PPT页面中按下鼠标左键并拖动,即可绘制出您需要的图形,在图形中添加文字或其他元…

    C 2023年5月23日
    00
  • C++ Cmake的构建静态库和动态库详解

    C++ Cmake的构建静态库和动态库详解 什么是静态库和动态库 在C++编程中,常常需要使用一些共用的代码库,这些代码库可以被其他的程序或者模块共享使用。为了方便管理这些代码库,我们通常会将它们打包成静态库或者动态库。静态库是在编译时被链接到程序中,而动态库则是在运行时被链接到程序中。两者的主要区别在于,静态库会被完全复制到编译后的可执行文件中,而动态库则…

    C 2023年5月23日
    00
  • C语言强制类型转换规则实例详解

    C语言强制类型转换规则实例详解 什么是强制类型转换? 在C语言中,当我们需要将不同类型的数据进行运算或者赋值的时候,需要进行类型转换。C语言中有两种类型转换,一种是自动类型转换,另一种是强制类型转换。强制类型转换可以将一种类型的数据强制转换成另一种类型的数据,以便实现我们需要的功能。在C语言中,强制类型转换使用强制转换运算符进行实现。强制转换运算符的语法格式…

    C 2023年5月23日
    00
  • C语言中怎么在main函数开始前执行函数

    要在main()函数执行之前执行自定义函数,可以使用C语言中的__attribute__关键字以及GCC编译器提供的constructor函数。该方法允许我们在程序运行时完成某些预处理工作,例如初始化全局变量或检查系统配置等。以下是详细步骤: 编写自定义函数,定义函数名、返回值类型和参数列表等。使用__attribute__((constructor))宏将…

    C 2023年5月23日
    00
  • Cocos2d-x中获取系统时间和随机数实例

    获取系统时间: 在 Cocos2d-x 中获取系统时间可以使用 C++ 标准库中的 ctime 头文件,用 std::time() 函数获取当前系统时间的时间戳,再将时间戳转换为字符串以实现格式化输出。 示例代码: #include <ctime> #include <string> … std::time_t now = std…

    C 2023年5月30日
    00
  • C++深复制和浅复制讲解

    C++中的复制操作包含深复制和浅复制两种方式。简单来说,浅复制只复制指针而不复制指针指向的内存空间,而深复制会复制指针和指针指向的内存空间。 一般情况下,我们需要使用深复制,以避免浅复制造成指针指向错误的情况。 深复制的实现方式 在C++中,可以通过使用拷贝构造函数和赋值操作符实现深复制。 拷贝构造函数 拷贝构造函数是一种特殊的构造函数,用于在创建对象时,用…

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