当前位置: 首页 > news >正文

初步了解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.lryc.cn/news/345681.html

相关文章:

  • 赶紧收藏!2024 年最常见 100道 Java 基础面试题(四十)
  • 初步了解Kubernetes
  • 前端工程化的基本介绍
  • linux上Redis安装使用
  • prometheus+grafana的安装与部署及优点
  • JWK和JWT 学习
  • Go 使用mqtt
  • C++ primer plus习题及解析第十二章(类和动态内存分配)
  • gdb调试功能描述
  • 使用Simulink Test进行单元测试
  • 深度学习中超参数设置
  • Docker nsenter 命令使用
  • 十二种网络威胁防护方案
  • C++ sort()排序详解
  • 移动机器人系统与技术:自动驾驶、移动机器人、旋翼无人机
  • zTasker v1.88.1一键定时自动化任务
  • 时序医疗数据集---adfecgdb
  • ruoyi-vue-pro 使用记录(4)
  • 【17-Ⅱ】Head First Java 学习笔记
  • 订单超时自动取消的实践方案
  • 【gin框架入门】
  • dev c++调试录入数字后回车直接关闭
  • java期末复习
  • 让新手变中手的ChatGPT 使用方法
  • 桥接模式类图与代码
  • Oracle count的优化-避免全表扫描
  • leetcode17. 电话号码的字母组合
  • 如何设计与管理一个前端项目
  • 【MQTT】mosquitto 的 “下载、交叉编译、使用” 详细教程,手把手搭建一个MQTT Broker
  • 用云手机打造海外社媒矩阵