迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

使用 Python 将数据附加到 JSON 文件

作者:迹忆客 最近更新:2023/04/25 浏览次数:

大多数 Web 应用程序和 Rest API 向用户提供 JSON 格式的数据,因为它在 Web 应用程序中被广泛使用且易于理解。 因此,如果您在 Web 应用程序中使用 Python,您可能会对使用 Python 将数据附加到 JSON 文件感兴趣。

本教程介绍了使用 Python 将数据附加到 JSON 文件的可能方法。


使用 Python 将数据附加到 JSON 文件

我们不能直接使用 Python 附加 JSON 文件,但我们可以覆盖它。 那么,如何在 JSON 文件中追加数据呢?

为此,我们必须遵循以下步骤:

  • 读取 Python 字典或列表对象中的 JSON 文件。
  • 附加该字典或列表对象。
  • 将更新后的字典或列表对象写入原始 JSON 文件(此处,之前的内容将被更新后的内容覆盖)。

我们的 JSON 文件 (data.json) 包含下面给出的数据,我们将在本文接下来的代码示例中使用这些数据。

JSON 文件内容(保存在 data.json 文件中):

{
    "student_details":[
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@163.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@gmail.com"
        }

    ]
}

使用 Python 列表对象将数据更新到 JSON 文件

假设我们要在 data.json 文件中添加以下学生:

{
    "student_first_name": "Aftab",
    "student_last_name": "Raza",
    "student_email": "Aftab@gmail.com"
}

因此,让我们运行以下代码来完成它。

示例代码(保存在 demo.py 中):

import json

def write_json(new_student, filename='./data.json'):
    with open(filename,'r+') as file:
        file_content = json.load(file)
        file_content["student_details"].append(new_student)
        file.seek(0)
        json.dump(file_content, file, indent = 4)

new_student = {
    "student_first_name": "Aftab",
    "student_last_name": "Raza",
    "student_email": "Aftab@gmail.com"
}

write_json(new_student)

首先,我们导入 json 模块来处理 JSON 文件。 接下来,我们编写一个 write_json() 函数,它有两个参数:包含我们要附加的学生详细信息的 new_student 和文件名(我们也可以在此处指定文件路径)。

在此函数内部,我们使用 open() 方法以阅读模式打开指定文件。 然后,我们使用 json.loads() 来解析 file_content 中的 JSON 字符串(加载现有数据)。

接下来,我们使用列表对象使用 .append() 将 file_content 与 student_details 中的 new_student 连接起来。 file.seek(0) 将文件的当前位置设置为偏移量。

最后,我们使用 .dump() 将其转换回 JSON。

现在,我们使用 python demo.py 运行上面的代码,如下所示:

PS E:\Code> python demo.py

成功执行上述程序后,我们的 data.json 文件将被覆盖。 请参阅下面更新的 data.json 文件。

输出(data.json 的文件内容):

{
    "student_details": [
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@163.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@gmail.com"
        },
        {
            "student_first_name": "Aftab",
            "student_last_name": "Raza",
            "student_email": "Aftab@gmail.com"
        }
    ]
}

使用 Python dict 对象将数据更新到 JSON 文件

现在,假设我们要为所有学生添加一个属性,"section": "A"。 我们可以这样做:

示例代码(保存在 demo.py 文件中):

import json

def write_json(section, filename='./data.json'):
    with open(filename,'r+') as file:
        file_content = json.load(file)
        file_content.update(section)
        file.seek(0)
        json.dump(file_content, file, indent = 4)

section = { "section": "A"}

write_json(section)

此示例与上一个示例类似,后者使用列表对象将数据更新为 JSON 文件,但有一处不同。 在这里,我们使用 dict 对象来使用 .update() 方法,该方法使用来自另一个 dict 对象或来自可迭代键值对的元素更新 dict(字典)。

使用 python demo.py 命令运行此程序后,我们将在 data.json 文件中包含以下内容。

输出(保存在 data.json 文件中):

{
    "student_details": [
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        },
        {
            "student_first_name": "Aftab",
            "student_last_name": "Raza",
            "student_email": "Aftab@gmail.com"
        }
    ],
    "section": "A"
}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便