初步了解json文件

来自wetab 的AI pro:

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是它使用了类似于编程语言(特别是JavaScript)的习惯。因此,这种格式非常流行在网络应用中用于数据交互。

JSON是由多种类型的值组成:

  1. 对象(Object):对象在JSON中表示为一系列键值对(“key”: value),被大括号 {} 包围。每个键(key)是一个字符串,每个值(value)可以是字符串、数字、数组、真/假值或者另一个对象。
  2. 数组(Array):数组是一系列值(value),被方括号 [] 包围,值之间用逗号分隔。
  3. 值(Value):值可以是字符串、数字、对象、数组、布尔值(true/false)或者 null。

示例 JSON 数据

{"person": {"name": "John Doe","age": 30,"isStudent": false,"skills": ["Python", "JavaScript"],"address": {"street": "123 Elm St","city": "Somewhere"}}
}

在这个示例中:

  • “person” 是一个对象,包含了五个键值对:nameageisStudentskills, 和 address
  • “skills” 是一个数组,包含了两个字符串值。
  • “address” 是一个嵌套对象,包含了 street 和 city 两个键。

如何使用 Python 处理 JSON

Python 支持 JSON 通过 json 库,允许你解析 JSON 字符串及文件,并可以将内部数据结构变回 JSON 格式。

以下是基于上述 JSON 示例的处理代码:

import json# JSON 字符串
json_string = '''
{"person": {"name": "John Doe","age": 30,"isStudent": false,"skills": ["Python", "JavaScript"],"address": {"street": "123 Elm St","city": "Somewhere"}}
}
'''# 将 JSON 字符串转换为 Python 字典
data = json.loads(json_string)# 访问数据
name = data['person']['name']
age = data['person']['age']
skills = data['person']['skills']
city = data['person']['address']['city']print(f"Name: {name}, Age: {age}, City: {city}")
print("Skills:", skills)# 添加一个新的技能
data['person']['skills'].append("R")# 将 Python 字典转换回 JSON 字符串
updated_json = json.dumps(data, indent=4)
print("Updated JSON:")
print(updated_json)

这个代码段展示了如何从一个 JSON 字符串读取数据,怎样访问和修改数据,以及如何将修改后的数据写回到 JSON 格式。dumps()方法:将Python对象序列化为JSON字符串。

进一步的,将上面的json_string保存为一个json文件并从文件读取内容,然后将['person']['name']的值改为"Tom",再次保存json文件:

import json# JSON 字符串
json_string = '''
{"person": {"name": "John Doe","age": 30,"isStudent": false,"skills": ["Python", "JavaScript"],"address": {"street": "123 Elm St","city": "Somewhere"}}
}
'''# 将字符串保存到 JSON 文件
with open('data.json', 'w') as file:file.write(json_string)# 从文件读取 JSON 数据
with open('data.json', 'r') as file:data = json.load(file)# 修改name的值
data['person']['name'] = "Tom"# 将更新后的数据保存回 JSON 文件
with open('data.json', 'w') as file:json.dump(data, file, indent=4)# 打印输出以验证更改
print(json.dumps(data, indent=4))
  • indent=4 表示每一层数据前将插入四个空格作为缩进。这使得生成的 JSON 数据结构清晰,方便人类阅读和调试。如果不设这个参数,上述数据的打印结果是:{"person": {"name": "Tom", "age": 30, "isStudent": false, "skills": ["Python", "JavaScript"], "address": {"street": "123 Elm St", "city": "Somewhere"}}}。设定缩进后:
  • {
        "person": {
            "name": "Tom",
            "age": 30,
            "isStudent": false,
            "skills": [
                "Python",
                "JavaScript"
            ],
            "address": {
                "street": "123 Elm St",
                "city": "Somewhere"
            }
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧公厕,运用数据提升公共厕所管理水平!

随着城市人口的增加和生活水平的提高,公共厕所的管理变得越来越重要。传统的厕所管理方式已经无法满足人们对卫生、便利和舒适的需求。而智慧公厕作为新一代公厕管理方式,通过运用数据技术和大数据分析手段,彻底改变了公厕管理的模式&#xf…

Maximo 在 Automation Script 中访问数据库

在 Automation Script 中我们通常使用 mbo 对象来操作数据,但有时候当数据量较大时,使用 mbo 对象来操作数据会比较慢。这时候,我们可以使用 JDBC 的方式来直接访问数据库,从而提高操作数据的效率。 下面看看使用 JavaScript 脚本…

2024OD机试卷-执行任务赚积分 (java\python\c++)

题目:执行任务赚积分 题目描述 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问在有限的时间内,可…

C++对象的赋值

同类的对象之间可以互相赋值,即一个对象的值可以赋值给另一个对象。对象之间的赋值通过“”进行。默认就是把一个对象所有非static数据成员的值依次赋值给另一个对象。 对象赋值的一般形式为: 对象名1 对象名2; 注意:对象名1和对象名2必须是属于同一个…

flutter开发实战-GetX响应式状态管理使用

flutter开发实战-GetX响应式状态管理使用 GetX是一个简单的响应式状态管理解决方案。GetX是Flutter的一款超轻、功能强大的解决方案。它将高性能状态管理、智能依赖注入和路由管理快速而实用地结合在一起。这里简单使用一下GetX 一、引入GetX 在工程的pubspec.yaml中引入插件…

信息系统架构模型_1.单机应用模式和客户机/服务器模式

1.单机应用模式(Standalone) 单机应用系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序。这些软件系统,从今天的软件架构上来讲,是很简单,是标准的单机系统。当然至今,这种复杂的…

export QT_DEBUG_PLUGINS=1

Qt的编程中包含了插件模式,使得程序的扩展性非常好,但插件的动态加载的检查也比较严格,这次编译数据库驱动插件就碰到了不少问题。实际上,可以在系统的 环境变量中设置QT_DEBUG_PLUGINS=1 ,即在终端中执行 …

电路板维修【二】

【维修一个65W的氮化镓快充头,摔地上就没输出了,看下怎么回事】:https://www.bilibili.com/video/BV1vG411Q7MDvd_source3cc3c07b09206097d0d8b0aefdf07958 对于某些电器,维修之前需要先测量主滤波电容上面有没有存电&#xff0c…

【java】泛型

文章目录 1. 什么是泛型?1.1 背景1.2 泛型的概念1.3 泛型的好处 2. 泛型类、接口...2.1 泛型类2.2 从泛型类派生子类2.2.1 子类也是泛型类,子类和父类的泛型类型要一致2.2.2 子类不是泛型类,父类要明确泛型的数据类型 2.3 泛型接口2.4 泛型方…

【AMBA Bus ACE 总线 8 -- ICache maintenance】

请阅读【AMBA Bus ACE 总线与Cache 专栏 】 欢迎学习:【嵌入式开发学习必备专栏】 文章目录 ACE ICache maintenanceACE ICache maintenance 图 1-1 当一个OS run 多个cpu的时候,根据调度算法的不同,OS 可以根据调度算法的不同分别 run 在某个具体的CPU上,因此,它们会有…

分布式模式让业务更高效、更安全、更稳定

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章🔥:探索设计模式的魅力:分布式模…

centos7下安装配置nginx

1、下载nginx安装包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 2、安装nginx所需依赖 yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum -y install openssl openssl-devel 3、进入到nginx安装包目录下,解压tar.gz包 cd /home/soft t…

pikachu靶场-全套学习

文章目录 配置pikachu靶场浏览器访问过程burpsuite配置代理hackbar安装使用kali安装中国蚁剑暴力破解cookie简化场景解释各部分含义如何工作 基于表单的暴力破解验证码绕过(On server)验证码绕过(on client)token防爆破? XSS(Cross-Site Scripting跨站脚本攻击 &am…

使用AudioCraft(MusicGen)生成音乐

AudioCraft 是一个 PyTorch 库,用于音频生成的深度学习研究。AudioCraft 包含 AudioGen 和 MusicGen 两个最先进的人工智能生成模型的推理和训练代码,用于生成高质量的音频。 MusicGen 是一种简单可控的音乐生成模型,它使用Meta 20K 小时的授权音乐来进行训练,能够生成与文…

【栈】Leetcode 比较含退格的字符串

题目讲解 844. 比较含退格的字符串 算法讲解 使用栈模拟,但遇到#字符就让栈顶元素出栈,但是在写的过程中有两点需要注意:当#出现在第一个位置,需要特殊处理一下;当栈为空的时候,还出现#字符需要特殊处理…

【Web】2023浙江大学生省赛初赛 secObj 题解

目录 step 0 step 1 step 2 step 3 题目本身是不难,简单复健一下 step 0 pom依赖就是spring 反序列化入口在./admin/user/readObj 输入流做了黑名单的过滤,TemplatesImpl不能直接打 可以jackson打SignedObject二次反序列化绕过 具体原理看下面这…

全新时代的降临——比亚迪,助力未来出行

近日,世界舞台中央聚焦,比亚迪登上欧洲顶级赛事赞助席位,让全球见证中国新能源汽车传奇崛起!作为新能源领袖品牌,比亚迪现已累计销售突破730万辆,全球每售出五辆新能源汽车,便有一辆来自比亚迪。…

支付漏洞防护绕过的一种方式

首先注册一个账户并进行登陆,点击一个商品点击进去 这里为了方便查看数据包,我这边商品的数量选择3,点击立即购买并抓包 观察数据包,发现有个num传参,正是我选择的数量3,尝试修改为负数-3,这里需要修改两个包 点击提交后发现报错了,显示已经付了或者金额不能为0 也就是说数量…

【SRC实战】利用APP前端加密构造数据包

挖个洞先 https://mp.weixin.qq.com/s/ZnaRn222xJU0MQxWoRaiJg “ 以下漏洞均为实验靶场,如有雷同,纯属巧合” 01 — 漏洞证明 “ 参数加密的情况,不会逆向怎么办?” 1、新用户首次设置密码时抓包,此处设置为0000…

快充插线板怎么选?我的办公搭子是它!

最近我入手了一款倍思65W氮化镓快充插线板,不得不说真的是我的办公好搭子。在这里跟大家分享一下使用体验,希望能给正在挑选快充插线板的你一些参考。 首先,这款插线板的外观真的很讨喜。纯白色的长方体造型,简约而不失时尚感,放在办公桌上非常百搭。而且,它的体积小巧,长度比我…