JSON及Python操作JSON相关

python与json JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dumps(): 对数据进行编码。 json.loads(): 对数据进行解码 立即下载

JSON及Python操作JSON相关

Json简介及Python操作Json相关示例。

1. JSON概念及支持的数据类型

1.1 什么是 JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。尽管 JSON 源于 JavaScript,它与编程语言无关,目前被广泛应用于各种编程语言中。

1.2 JSON 支持的数据类型

JSON 支持以下几种基本数据类型:

  • 两种特殊类型:数组(array)、对象(object)
  • 四种基础类型:字符串(string)、数字(number)、布尔型(boolean)、NULL值
  1. 对象(Object)
  • 表示为一组无序的键值对集合,用花括号 {} 包裹。
  • 键必须是字符串,并且用双引号包裹。
  • 每个键值对之间用逗号 , 分隔。
  • 键和值之间用冒号 : 分隔。

示例:

{
  "name": "John",
  "age": 30,
  "isStudent": false,
  "address": {
      "city": "New York",
      "zip": "10001"
  }
}
  1. 数组(Array)
  • 表示为一个有序的值集合,用方括号 [] 包裹。
  • 各个值之间用逗号 , 分隔。

示例:

[
  "apple",
  "banana",
  "cherry"
]

json对象和字符串区别:

特性JSON 对象JSON 数组
表示花括号 {} 包裹方括号 [] 包裹
数据形式无序的键值对集合有序的值的集合
键字符串(用双引号包裹)无键,只有索引
值可以是任何JSON数据类型可以是任何JSON数据类型
使用场景表示复杂结构化数据表示有序列表数据
  1. 字符串(String)
  • 表示为一串字符序列,用双引号 " 包裹。
  • 可以包含转义字符,例如 \" 表示双引号,\\ 表示反斜杠,\n 表示换行符等。

示例:

"Hello, world!"
  1. 数字(Number)
  • 表示为整数或浮点数。
  • 可以是正数、负数,或零。

示例:

42
3.14
  1. 布尔值(Boolean)

表示为 true 或 false。

示例:

true
false
  1. 空值(Null)

表示为空值,使用 null。

示例:

null

2. 示例代码

2.1 读取JSON文件

在Python中,你可以使用json模块读取JSON文件。这是最常见的操作。

import json

# 读取JSON文件
with open('data.json', 'r', encoding='utf-8') as file:
    data = json.load(file)  # 读取并解析JSON数据

# 打印数据
print(data)

这里我们使用json.load()读取并解析JSON文件,并将结果存储在data变量中。

2.2 写入JSON文件

你可以使用json.dump()将Python数据结构写入JSON文件。

import json

# 要写入的Python数据
data = {
    "name": "Alice",
    "age": 30,
    "skills": ["Python", "Data Analysis", "Machine Learning"]
}

# 写入到JSON文件
with open('output.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, indent=4)  # 使用缩进格式化输出

这个示例使用json.dump()将字典写入JSON文件。

2.3 解析JSON字符串

有时数据可能以JSON字符串的形式存在。这时你可以使用json.loads()来解析它。

import json

# 一个JSON字符串
json_str = '{"name": "Bob", "age": 25, "city": "New York"}'

# 解析JSON字符串
data = json.loads(json_str)

print(data)  # {'name': 'Bob', 'age': 25, 'city': 'New York'}

2.4 将Python数据转换为JSON字符串

与解析JSON字符串类似,你可以使用json.dumps()将Python数据转换为JSON字符串。

import json

# 一个Python数据结构
data = {
    "name": "Charlie",
    "hobbies": ["Reading", "Swimming", "Hiking"]
}

# 将Python数据转换为JSON字符串
json_str = json.dumps(data, indent=4)

print(json_str)  # JSON格式的字符串

2.5 处理复杂JSON数据

JSON数据可以包含嵌套的结构。Python可以方便地处理这些复杂数据。

import json

# 一个包含嵌套结构的JSON
nested_json = {
    "name": "Dave",
    "age": 40,
    "children": [
        {"name": "Amy", "age": 10},
        {"name": "Ben", "age": 8}
    ],
    "contact": {
        "email": "dave@example.com",
        "phone": "+1234567890"
    }
}

# 将Python数据转换为JSON字符串
json_str = json.dumps(nested_json, indent=4)

print(json_str)

在这个示例中,我们创建了一个包含嵌套结构的Python数据,然后将其转换为JSON字符串以进行输出。

3. 总结

3.1 json模块中load、loads、dump、dumps函数的区别总结

函数描述参数返回值用途
load从文件读取JSON数据,并转换为Python对象- file object: 包含JSON数据的文件对象Python对象从文件中读取并解析JSON数据
loads从字符串读取JSON数据,并转换为Python对象- str: JSON格式的字符串Python对象从字符串中读取并解析JSON数据
dump将Python对象编码为JSON数据并写入文件- obj: Python对象
- file object: 文件对象
无将Python对象写入文件中
dumps将Python对象编码为JSON格式的字符串- obj: Python对象JSON格式的字符串将Python对象转换为JSON字符串

3.2 JSON类型与Python类型的对照表

JSON 类型Python 类型示例
objectdict{"name": "John", "age": 30} -> {'name': 'John', 'age': 30}
arraylist[1, 2, 3] -> [1, 2, 3]
stringstr"hello" -> 'hello'
numberint 或 float42 -> 42
3.14 -> 3.14
trueTruetrue -> True
falseFalsefalse -> False
nullNonenull -> None

3.3 区分Python字典和JSON格式的字符串

1. 语法上区分

  • Python 字典: 是一种内存中的数据结构,包含键值对,键可以是任何不可变的数据类型,值可以是任意数据类型。
  • JSON: 是一种用于数据交换的字符串格式,键和值都必须是特定类型(键必须是字符串,值可以是字符串、数字、数组、对象、布尔值或 null)。

2. JSON和 Python 字典的使用场景

  • Python 字典:用于在 Python 程序内部处理数据。
  • JSON 字符串:用于在不同系统之间交换数据(例如,前后端通信、数据存储等)。
具身智能的边缘计算核心构成方案 摘要: 具身智能(Embodied Intelligence)依赖物理实体与环境交互,而边缘计算(Edge Computing)通过本地化数据处理降低延迟、提升实时性。两者结合的核心方案包含五层架构:传感器层采集环境数据,边缘处理单元执行本地计算,通信模块实现低延迟传输,决策引擎运行轻量AI模型,执行器接口转化动作为物理操作。该方案以“边缘优先”为原则,满足毫秒级响应(如延迟<50ms),同时优化能效(功耗降低30%)和隐私保护。适用于机器人、自动驾驶等场景,通过分层闭环设计确保在资源受限环境中的可靠 阅读详情

相关推荐

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1005

Json文件格式及Python对其的基本使用

Json文件格式及Python对其的基本使用

fuleileileilei的博客 3518

OpenCV透视变换原理与实战:从单应性矩阵到文档矫正

透视变换是计算机视觉中实现平面图像几何校正的基础技术,其核心在于利用单应性矩阵(Homography)建模三维空间到二维图像的射影关系。不同于仿射变换的线性约束,透视变换通过有理函数映射支持任意凸四边形间的非线性变形,天然适配真实场景中的远小近大、平行线汇聚等透视现象。该技术具备确定性强、计算高效、无需训练数据等工程优势,广泛应用于文档扫描矫正、车牌识别预处理、AR贴图对齐及无人机正射影像生成等场景。结合OpenCV的cv2.findHomography与cv2.warpPerspective接口,开发者可

weixin_30873847的博客 654

【强烈推荐】Python中JSON的基本使用(超详细)

json.dumps将 Python 对象编码成 JSON 字符串json.loads将已编码的 JSON 字符串解码为 Python 对象json.dump和json.load,需要传入文件描述符,加上文件操作。json内部的格式要注意,一个好的格式能够方便读取,可以用indent格式化。个人总结:dump:存入的实例对象object(序列化)dumps:存入的JSON的字符串数据load:读取的实例对象object(反序列化)loads:读取的JSON的字符串数据,转化为Python。

impoijimlq的博客 7万+

M1安装homebrew报错LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54解决方法

在mac系统中,使用homebrew可以很方便的管理包。但按照官网的说明执行命令时总是报错原因是这个资源访问有问题,那么我们可以直接使用国内的镜像。给大家推荐一个中国科学技术大学的镜像站点,里面有各种资源https言归正传,开始踩坑。......

qq_42427085的博客 1455

用PyCharm+Scrapy打造你的第一个爬虫:从安装到实战(附完整代码)

本文详细介绍了如何使用PyCharm和Scrapy框架从零开始构建高效网络爬虫。通过环境配置、项目创建、核心爬虫逻辑编写到数据处理与存储的完整流程,帮助Python开发者快速掌握爬虫开发技巧,并附有实战代码示例。特别适合想要学习Scrapy框架和提升爬虫技能的开发者。

weixin_29038345的博客 868

Python JSON的使用

什么是JSON: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Ja

君 1573

在PLC中将十六进制数据转换为浮点数(通常遵循IEEE 754标准)需要理解数据存储格式,并按以下步骤操作:

通过以上步骤,您可以在PLC中实现十六进制到浮点数的转换。T DBD20 // 将数据传送到浮点数变量(如DB1.DBD20)指数位(8位):实际指数 = 存储值 - 127(偏移量)。:必须确认PLC的存储顺序(大端或小端),否则结果错误。将两个16位寄存器合并为32位数据,需注意。尾数位(23位):隐含前导1,实际值为。:确保32位数据在寄存器中连续且对齐。符号位(1位):0表示正,1表示负。:高位寄存器在前(如西门子PLC)。:低位寄存器在前(如三菱FX系列)。,误差因截断导致)。

K11mvp的博客 4417

python: json格式解析与转换

使用Python标准库: json 实现json格式字符串与Python对象的互转。

weixin_44874457的博客 966

别再买错磁铁了!手把手教你为TLE5012B/AS5047等磁编码器选配和安装径向充磁磁铁

本文详细解析了为TLE5012B/AS5047等磁编码器选配和安装径向充磁磁铁的关键要点。从充磁方向的物理本质到供应商沟通技巧,再到安装工艺的黄金法则,帮助工程师避免常见错误,确保磁编码器稳定工作。特别强调了径向充磁的重要性及验证方法,并提供了尺寸选择、温度特性和抗干扰设计的实用建议。

weixin_26750481的博客 315

构建基于知识图谱的金融风险关联网络可视化系统

知识图谱是一种用于表示实体及其关系的图形结构,能够将分散的数据组织成易于理解和查询的形式。语义性:通过实体和关系的描述,赋予数据语义。结构化:以图的形式组织数据,便于计算机处理。动态性:支持实时更新,能够反映数据的最新状态。风险关联网络是指将金融风险事件、实体及其关系以图形形式表示的网络。关联性:能够展示风险事件之间的相互影响。动态性:能够实时反映风险变化。可视化:便于金融从业者直观理解风险分布。可视化系统是指通过图形界面展示数据或信息的系统。提供直观的数据显示。帮助用户快速理解复杂数据。

AI天才研究院 1057

python与json数据的交互

python与json数据的交互

qq_44690947的博客 1122

YOLO学习笔记 | YOLOv8与卡尔曼滤波实现目标跟踪与预测(附代码)

YOLOv8采用改进的CSPDarknet骨干网络和动态标签分配策略,提供高精度、实时的目标检测能力。使用IOU(交并比)或马氏距离作为代价矩阵,通过匈牙利算法匹配预测框与检测框,解决多目标ID分配问题。卡尔曼滤波通过状态方程和观测方程对目标运动建模,结合预测与观测数据优化状态估计。完整代码需结合具体场景调整参数,并补充匈牙利算法实现(可参考。匈牙利算法(Hungarian Algorithm)是解决。的高效方法,常用于目标跟踪中的。),作为跟踪的输入观测值。(将检测框与预测框匹配)。

尘世冰封的专栏 1250

Json概述以及python对json的相关操作

参考

Borntodieee的博客 245

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python对json的相关操作以及json模块的简要分析

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 JSON有两种结构: 第一种就是“名称/值”对的集合。在python中相当于字典类型,在其他语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keye

京东放养的爬虫 1881

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python json是什么_Json概述以及python对json的相关操作

什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯...

weixin_39956451的博客 156

python json函数_Json概述以及python对json的相关操作

一、什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的...

weixin_39673184的博客 160

python json是什么意思_Json概述以及python对json的相关操作

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C+...

weixin_39637457的博客 301

python中对于json数据的相关操作

一.json简介 1.概念:一种保存数据的格式 2.作用:可以保存本地的json文件,也可以将json串进行传输,通常将json作为轻量级的传输方式 3.json文件组成: (1){ } 代表对象(字典) (2)[ ] 代表列表 (3) : 代表键值对 (4) , 分割两个部分 二.json相关处理代码 思...

马马也的个人博客 370

json概述以及python对json的相关操作

json概述以及python对json的相关操作 什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。

jfkidear的专栏 1103

json的python_Json概述以及python对json的相关操作

什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯...

weixin_39814369的博客 114
上一篇: 3. ChaosBlade-Box平台安装
下一篇: rabbitmq单机安装及性能测试
KongTY312
博客等级 码龄12年 2143粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KongTY312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值