python报错:使用json.dumps()时,报错type xxx is not json serializable错误原因及解决方案
文章目录
- 一、错误原因分析
- 二、解决方案
- 1. **自定义对象序列化
- 方法一:使用`default`参数定义转换逻辑
- 方法二:继承`JSONEncoder`类统一处理
- 2. **处理特殊数据类型
- 场景一:`datetime`或`numpy`类型
- 场景二:`bytes`类型
- 3. **处理复杂数据结构
- 三、最佳实践
- 四、总结对比
在Python 3.8中使用
json.dumps()
时遇到
TypeError: Object of type xxx is not JSON serializable
错误,通常是因为待序列化的对象包含JSON默认不支持的数据类型(如自定义类实例、
datetime
、
numpy
数值类型、
bytes
等)。以下是系统性解决方案及案例说明:
一、错误原因分析
JSON标准仅支持基础数据类型(字典、列表、字符串、整数、布尔值等),以下场景会触发此错误:
- 自定义对象未定义序列化逻辑(如直接序列化类实例)。
- 特殊数据类型未转换(如
datetime
、numpy.int64
、bytes
等)。 - 数据结构包含不可序列化元素(如字典中包含函数、集合等)。
二、解决方案
1. **自定义对象序列化
方法一:使用default
参数定义转换逻辑
通过default
函数将对象转为字典或JSON支持的类型:
import jsonclass User:def __init__(self, name, age):self.name = nameself.age = agedef user_serializer(obj):if isinstance(obj, User):return {"name": obj.name, "age": obj.age}raise TypeError(f"Type {type(obj)} not serializable")user = User("Alice", 30)
json_str = json.dumps(user, default=user_serializer) # 输出:{"name": "Alice", "age": 30}
- 简化写法:直接利用
__dict__
属性序列化所有实例变量:json_str = json.dumps(user, default=lambda o: o.__dict__)
方法二:继承JSONEncoder
类统一处理
通过自定义编码器支持多种类型(如同时处理datetime
和自定义类):
from datetime import datetime
import numpy as npclass EnhancedEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.isoformat() # 处理时间类型elif isinstance(obj, np.int64):return int(obj) # 处理numpy数值elif hasattr(obj, "__dict__"):return obj.__dict__ # 处理自定义类return super().default(obj)data = {"user": user, "timestamp": datetime.now(), "value": np.int64(100)}
json_str = json.dumps(data, cls=EnhancedEncoder)
2. **处理特殊数据类型
场景一:datetime
或numpy
类型
- 转换时间对象:将
datetime
转为ISO格式字符串。 - 转换NumPy数值:使用
tolist()
或int()
/float()
转为原生类型:import numpy as np data = np.arange(5) json_str = json.dumps(data.tolist()) # 转为列表后序列化
场景二:bytes
类型
- 解码为字符串:假设
bytes
是UTF-8编码:def bytes_serializer(obj):if isinstance(obj, bytes):return obj.decode("utf-8")raise TypeError(f"Type {type(obj)} not serializable")data = {"key": b"binary_data"} json_str = json.dumps(data, default=bytes_serializer)
- Base64编码(保留原始二进制信息):
import base64 def bytes_to_base64(obj):if isinstance(obj, bytes):return {"_bytes": base64.b64encode(obj).decode("utf-8")}raise TypeError(f"Type {type(obj)} not serializable")
3. **处理复杂数据结构
若数据包含函数、集合等非法元素,需手动过滤或转换:
data = {"func": lambda x: x*2, "numbers": {1, 2, 3}}# 方法1:移除非法元素
filtered = {k: v for k, v in data.items() if not callable(v) and not isinstance(v, set)}# 方法2:转换集合为列表
data["numbers"] = list(data["numbers"])
json_str = json.dumps(data, default=lambda o: str(o) if callable(o) else o)
三、最佳实践
- 统一入口处理序列化
在数据输出到API或文件前,统一调用自定义编码器或default
函数。 - 静态类型检查
使用mypy
提前发现类型问题:mypy --strict your_script.py
- 第三方库扩展
复杂场景可使用pydantic
或marshmallow
实现自动化序列化。
四、总结对比
场景 | 推荐方案 | 引用 |
---|---|---|
单一自定义对象 | default=lambda o: o.__dict__ | |
混合类型(时间/数值) | 自定义JSONEncoder 子类 | |
NumPy数组 | tolist() 转换 | |
bytes 数据 | decode() 或Base64编码 | |
复杂数据结构过滤 | 遍历并移除非法元素 |
通过以上方法,可系统性解决Python 3.8中json.dumps()
的序列化问题。若需反序列化自定义对象,可结合object_hook
参数实现。
上一篇:python 3.8版本如何使用json.dumps()
Python 3.8的json.dumps()时遇到了TypeError,提示某个对象无法被JSON序列化。我需要根据用户提供的搜索结果,找到解决办法。首先,回忆一下json模块的基本知识,它默认支持的数据类型有限,比如字典、列表、字符串、数字等。如果用户尝试序列化自定义对象、datetime对象、numpy类型或者bytes,就会报错。
看搜索结果中的网页1提到,自定义类实例需要定义转换函数,用default参数处理。比如,网页1中的Student类例子,通过student2dict函数或者直接使用__dict__属性来转换。这个方法应该适用于用户的自定义类问题。
网页2和网页3讨论了numpy数组和Pandas DataFrame的问题,用户如果处理科学计算数据,可能需要将numpy类型转换为Python原生类型,比如用tolist()或者int()转换。比如网页3提到用.tolist()方法处理NumPy数组,然后序列化。
网页4和网页5展示了如何通过继承JSONEncoder类来处理多种类型,比如ObjectId、自定义类等。这适合需要统一处理多种特殊类型的情况,比如同时处理datetime和numpy类型。
网页6和网页7提到bytes类型的问题,需要用decode或者Base64编码转换。如果用户的数据中有bytes类型,可能需要检查并转换,比如用decode(‘utf-8’)或者Base64处理。
网页8和网页9的例子说明如何处理复杂对象,比如复数或自定义类,通过分解成基本类型。比如encode_complex函数将复数转换为元组,或者自定义类的__dict__属性。
网页10和11提到自定义序列化和反序列化的方法,结合default和object_hook参数,或者使用第三方库如pydantic。这可能适用于需要更灵活处理的场景。
现在需要综合这些信息,整理出用户可能的错误原因和解决方案。首先,用户可能序列化了不支持的类型,比如自定义类、datetime、numpy.int64、bytes等。解决办法包括使用default参数、继承JSONEncoder、转换数据类型、处理嵌套结构等。
需要分点回答,每个点对应一种情况,并引用相关的网页。例如,处理自定义类用网页1和9的方法,处理datetime用网页5和10的方法,处理numpy用网页2、3,处理bytes用网页7,最后总结最佳实践。同时,需要确保每个解决方案都正确引用对应的搜索结果,比如default参数引用网页1,JSONEncoder引用网页4、5,numpy处理引用网页3,bytes处理引用网页7等。
还要注意Python 3.8的特性是否影响这些方法,但根据搜索结果,这些方法在3.8中都是适用的。比如default参数和JSONEncoder类在3.8中已经存在,所以没有问题。
可能用户的问题涉及多种类型,所以需要给出全面的解决方案,覆盖各种可能的类型错误,并指导用户如何根据具体情况选择合适的方法。比如,如果是单一类型,用default函数;多种类型用JSONEncoder;数据结构复杂需要递归处理等。
相关文章:
python报错:使用json.dumps()时,报错type xxx is not json serializable错误原因及解决方案
文章目录 一、错误原因分析二、解决方案1. **自定义对象序列化方法一:使用default参数定义转换逻辑方法二:继承JSONEncoder类统一处理 2. **处理特殊数据类型场景一:datetime或numpy类型场景二:bytes类型 3. **处理复杂数据结构 三…...
Vue3中实现轮播图
目录 1. 轮播图介绍 2. 实现轮播图 2.1 准备工作 1、准备至少三张图片,并将图片文件名改为数字123 2、搭好HTML的标签 3、写好按钮和图片标签 编辑 2.2 单向绑定图片 2.3 在按钮里使用方法 2.4 运行代码 3. 完整代码 1. 轮播图介绍 首先,什么是…...
flutter缓存网络视频到本地,可离线观看
记录一下解决问题的过程,希望自己以后可以参考看看,解决更多的问题。 需求:flutter 缓存网络视频文件,可离线观看。 解决: 1,flutter APP视频播放组件调整; 2,找到视频播放组件&a…...
2025年Ai写PPT工具推荐,这5款Ai工具可以一键生成专业PPT
上个月给客户做产品宣讲时,我对着空白 PPT 页面熬到凌晨一点,光是调整文字排版就改了十几版,最后还是被吐槽 "内容零散没重点"。后来同事分享了几款 ai 写 PPT 工具,试完发现简直打开了新世界的大门 —— 不用手动写大纲…...
【深度学习】#11 优化算法
主要参考学习资料: 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 目录 深度学习中的优化挑战局部极小值鞍点梯度消失 凸性凸集凸函数 梯度下降一维梯度下降学习率局部极小值 多元梯度下降 随机梯度下降随机梯度更新动态学习率…...
数学复习笔记 13
前言 继续做线性相关的练习题,然后做矩阵的例题,还有矩阵的练习题。 646 A 明显是错的。因为假设系数全部是零,就不是线性相关了。要限制系数不全是零,才可以是线性相关。 B 这个说法好像没啥问题。系数全为零肯定线性组合的结…...
AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月16日第79弹
从今天开始,咱们还是暂时基于旧的模型进行预测,好了,废话不多说,按照老办法,重点8-9码定位,配合三胆下1或下2,杀1-2个和尾,再杀6-8个和值,可以做到100-300注左右。 (1)定…...
阳台光伏+储能:安科瑞智能计量仪表来助力
随着可再生能源的普及和家庭储能需求的增长,阳台光伏储能系统逐渐成为家庭能源管理的新趋势。如何精准计量储能系统的发电量、用电量及电网交互数据,成为优化能源利用效率的关键。安科瑞计量仪表凭借高精度、多功能及智能化特性,为家庭阳台储…...
Unable to determine the device handle for GPU 0000:1A:00.0: Unknown Error
Unable to determine the device handle for GPU 0000:1A:00.0: Unknown Error 省流:我遇到这个问题重置bios设置就好了 这个错误信息表明系统无法识别或访问GPU(0000:1A:00.0),通常与CUDA、驱动程序或硬件相关。以下是可能的原…...
多态性标记设计
1.确定区间 2.获取该区间内的序列,如果只有一个位置,可以前后扩100bp 使用ncbi primer blast进行引物设计(https://blast.ncbi.nlm.nih.gov/Blast.cgi)...
Jenkins 最佳实践
1. 在Jenkins中避免调度过载 过载Jenkins以同时运行多个作业可能导致资源竞争、构建速度变慢和系统性能问题。分配作业启动时间可以防止瓶颈,并确保更顺畅的执行。如何实现? 在Cron表达式中使用H:引入抖动(jitter)&a…...
如何查询Ubuntu系统中最大的几个目录以G单位显示大小,从大到小排列?
环境: Ubuntu 20,04 问题描述: 如何查询系统中最大的几个目录以G单位显示大小,从大到小排列? 解决方案: 想查看整个系统(单一文件系统内)最大的20个目录,结果按大小从大到小排序…...
深入浅出拆分学习,图神经网络拆分学习,混合联邦学习
深入浅出解析拆分学习(Split Learning)、图神经网络拆分学习(Split Learning for Graph Neural Networks)以及混合联邦学习(Hybrid Federated Learning),这三者都体现了在分布式数据环境下进行机…...
DDD领域驱动介绍
📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…...
ubuntu22鼠键失灵恢复记录笔记chatgpt解决
ChatGPT 说: 你提到“Ubuntu 22 鼠键失灵”,这个问题可能涉及以下几方面: 🧭 先确认问题 是鼠标问题还是键盘问题,还是触控板? “鼠键”一般理解为“鼠标键”,请确认你是指鼠标左键/右键失灵&a…...
在服务器上安装AlphaFold2遇到的问题(1)
犯了错误,轻信deepseek,误将cuDNN8.9.7删掉 [rootlocalhost ~]# cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 #define CUDNN_MAJOR 8 #define CUDNN_MINOR 9 #define CUDNN_PATCHLEVEL 7 -- #define CUDNN_VERSION (CUDNN_MA…...
ch10 题目参考思路
ch10 - 最小生成树 有线通讯网 知识点:Prim 算法思路: 该题要求对 n 座城市铺设 n - 1 条光缆,并要求所有城市连通,那本质上是一棵树,又要求铺设光缆的费用最低,即要求选取的 n - 1 条光缆的长度最小&…...
Hudi、Iceberg 、 Paimon 数据湖选型对比
Hudi、Iceberg 和 Paimon 是当前数据湖领域的三大主流开源框架,均致力于解决数据湖场景下的增量更新、事务支持、元数据管理、流批统一等核心问题,但设计理念和适用场景存在差异。以下从技术特性、适用场景和选型建议三方面对比分析: 一、核心技术特性对比 维度HudiIceberg…...
2025认证杯数学建模第二阶段A题完整论文(代码齐全):小行星轨迹预测思路
2025认证杯数学建模第二阶段A题完整论文(代码齐全):小行星轨迹预测思路,详细内容见文末名片 第二阶段问题 1 分析 问题起源与相关性:为了更全面地评估近地小行星对地球的潜在威胁,需要对其轨道进行长期预测。三个月内的观测数据为…...
信息安全基础知识
信息系统 信息系统能进行(数据)的采集、传输、存储、加工,使用和维护的计算机应用系统 例如:办公自动化、CRM/ERP、HRM、12306火车订票系统等。 信息安全 信息安全是指保护信息系统中的计算机硬件、软件、数据不因偶然或者恶意…...
UE RPG游戏开发练手 第二十六课 普通攻击1
UE RPG游戏开发练手 第二十六课 普通攻击1 1.定义攻击的InputTag MyGameplayTags.h代码 RPGGAMETEST_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_LightAttack_Axe);MyGameplayTag.cpp代码 UE_DEFINE_GAMEPLAY_TAG(InputTag_LightAttack_Axe, "InputTag.LightAttack.Ax…...
SAP ABAP 程序中归档数据读取方式
上一篇文章记录了字段目录,归档信息结构,这篇文章记录如何通过字段目录,归档信息结构,归档对象读取归档数据。未归档数据是从数据库表直接抽取,本样例是通过归档读取方式复写sql。 发布时间:2025.05.16 示…...
每周资讯 | 腾讯Q1财报:国内游戏业务收入同比增长24%;Tripledot 8亿美元收购AppLovin游戏业务
内容速览: 广州“服务贸易和数字贸易22条”助推游戏产业发展Tripledot Studios 8亿美元收购AppLovin游戏业务苹果紧急申请暂停执行AppStore新规4月中国手游出海收入下载榜,点点互动《Kingshot》收入激增 腾讯Q1财报:国内游戏业务收入同比增长…...
iOS SwiftUI的具体运用实例(SwiftUI库的运用)
最近接触到一个 SwiftUI的第三方框架,它非常的好用。以下是 具体运用实例,结合其核心功能与开发场景,分多个维度进行详细解析: 一、基础 UI 组件开发 登录界面 SwiftUI 的 VStack、TextField 和 Button 可快速构建用户登录表单。例…...
杰理ac696配置sd卡随机播放
#define FCYCLE_LIST 0 // 列表循环(按顺序播放文件列表) #define FCYCLE_ALL 1 // 全部循环(播放完所有文件后重新开始) #define FCYCLE_ONE 2 // 单曲循环(重复播放当前文件) #define …...
MCP协议的核心机制和交互过程
MCP的核心是JSON-RPC 2.0 MCP使用了 JSON-RPC 2.0 作为client和server端的消息传输。JSON-RPC 2.0是一个用JSON编码的轻量级远程过程调用协议。它的优越性如下: 易读,易调试与编程语言无关,环境无关技术成熟,规范清晰且应用广泛JSON-NPC 2.0定义了request、response、noti…...
论信息系统项目的范围管理
论信息系统项目的范围管理 前言一、规划范围管理,收集需求二、定义范围三、创建工作分解结构四、确认范围五、控制范围 前言 为了应对烟草零售客户数量大幅度增长所带来的问题,切实履行控烟履约的相关要求,同时也为了响应国务院“放管服”政策…...
米勒电容补偿的理解
米勒电容补偿是使运放放大器稳定的重要手法,可以使两级运放的两个极点分离,从而可以得到更好的相位裕度。 Miller 电容补偿的本质是增加一条通路流电流,流电流才是miller效应的本质。给定一个相同的输入,Miller 电容吃掉的电流比…...
力扣654题:最大二叉树(递归)
小学生一枚,自学信奥中,没参加培训机构,所以命名不规范、代码不优美是在所难免的,欢迎指正。 标签: 二叉树、递归 语言: C 题目: 给定一个不重复的整数数组 nums 。最大二叉树可以用下面的算…...
Go语言实现生产者-消费者问题的多种方法
Go语言实现生产者-消费者问题的多种方法 生产者-消费者问题是并发编程中的经典问题,涉及多个生产者生成数据,多个消费者消费数据,二者通过缓冲区(队列)进行协调,保证数据的正确传递和同步。本文将从简单到…...
深度学习驱动下的目标检测技术:原理、算法与应用创新(二)
三、主流深度学习目标检测算法剖析 3.1 R - CNN 系列算法 3.1.1 R - CNN 算法详解 R - CNN(Region - based Convolutional Neural Networks)是将卷积神经网络(CNN)应用于目标检测领域的开创性算法,其在目标检测发展历…...
提权脚本Powerup命令备忘单
1. 获取与加载 从 GitHub 下载:(New-Object Net.WebClient).DownloadFile("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1", "C:\Temp\PowerUp.ps1")本地加载:Import-Module .\Power…...
人工智能 (AI) 在无线接入网络 (RAN) 中的变革性作用
随着电信行业向更智能、更高效的系统迈进,将 AI 集成到 RAN 中已不再是可有可无,而是至关重要。 随着 6G 时代的到来,人工智能 (AI) 有望降低运营成本,并带来更大的盈利机会。AI-RAN 正处于这一变革的前沿,在 RAN 环境…...
从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
目录 前言 一、从硬件角度理解"Linux下一切皆文件" 从理解硬件是种“文件”到其他系统资源的抽象 二、缓冲区 1.缓冲区介绍 2.缓冲区的刷新策略 3.用户级缓冲区 这个用户级缓冲区在哪呢? 解释关于fork再加重定向“>”后数据会打印两份的原因 4.内核缓冲…...
Python-感知机以及实现感知机
感知机定义 如果有一个算法,具有1个或者多个入参,但是返回值要么是0,要么是1,那么这个算法就叫做感知机,也就是说,感知机是个算法 感知机有什么用 感知机是用来表示可能性的大小的,我们可以认…...
根据台账批量制作个人表
1. 前期材料准备 1)要有 人员总的信息台账 2)要有 个人明白卡模板 2. 开始操作 1)打开 人员总的信息台账,选择所需要的数据模块; 2)点击插入,选择数据透视表,按流程操作&…...
ohttps开启群晖ssl证书自动更新
开启群晖ssl证书自动更新OHTTPS ohttps是一个免费自动签发ssl证书、管理、部署的项目。 https://ohttps.com 本文举例以ohttps项目自动部署、更新群晖的ssl证书。 部署 签发证书 打开ohttps-证书管理-创建证书-按你实际情况创建证书。创建部署节点 打开Ohttps-部署节点-添加…...
【Elasticsearch】flattened`类型在查询嵌套数组时可能返回不准确结果的情况
好的!为了更清楚地说明flattened类型在查询嵌套数组时可能返回不准确结果的情况,我们可以通过一个具体的例子来展示。这个例子将展示如何在文档中没有完全匹配的嵌套对象时,flattened类型仍然可能返回该文档。 示例文档结构 假设你有以下文…...
【知识点】语义分割任务中有哪些损失函数?
在语义分割任务中,模型需要对图像中的每个像素进行分类。因此,损失函数的设计不仅要关注整体精度,还需要特别注意目标物体的边界区域。以下是一些常用的损失函数及其适用场景,包括数学公式、PyTorch 实现和是否适合处理边界问题。 📌 一、交叉熵损失 Cross-Entropy Loss …...
Node.js 同步加载问题详解:原理、危害与优化策略
文章目录 一、什么是同步加载?二、同步加载的危害场景三、检测同步加载问题四、解决方案与代码优化 一、什么是同步加载? 1.核心概念 在 Node.js 的 CommonJS 模块系统中,require() 是同步操作: // 模块加载会阻塞后续代码执行 …...
linux下tcp/ip网络通信笔记1,
本文章主要为博主在学习网络通信的笔记一个Udp_echo_server,和client的代码实现 1,网络发展,网络协议,意识到网络通信——不同主机的进程间通信, 2,学习如何在应用层调用系统提供的接口进行通信,echo_Udp…...
网络攻防模拟:城市安全 “数字预演”
在当今数字化快速发展的时代,网络安全和城市安全面临着前所未有的挑战。为有效应对这些挑战,利用先进的技术搭建模拟演练平台至关重要。图扑软件的 HT for Web 技术,为网络攻防模拟与城市安全演练提供了全面且高效的解决方案。 三维场景搭建&…...
在 Ubuntu 20.04 中使用 init.d 或者systemd实现开机自动执行脚本
Ubuntu 20 默认使用的是 systemd 系统管理器,但传统的 SysV Init(/etc/init.d/)脚本依然兼容并可用。本文将介绍如何通过 init.d 写脚本来在开机时自动设置某个 GPIO(如 GPIO407)为高电平,适用于嵌入式系统…...
2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
前言 题解 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛)。 国赛比省赛难一些,做得汗流浃背,T_T. RC-u1 大家一起查作弊 分值: 15分 这题真的太有意思,看看描述 在今年的睿抗比赛上,有同学的提交代码如下࿱…...
【生成式AI文本生成实战】从GPT原理到企业级应用开发
目录 🌟 前言🏗️ 技术背景与价值🩹 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🧠 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🔧 关键技术模块说明⚖️ 技术选…...
【目标检测】RT-DETR
DETRs Beat YOLOs on Real-time Object Detection DETR在实时目标检测任务中超越YOLO CVPR 2024 代码地址 论文地址 0.论文摘要 YOLO系列因其在速度与精度间的均衡权衡,已成为实时目标检测领域最受欢迎的框架。然而我们观察到,非极大值抑制…...
数据库行业竞争加剧,MySQL 9.3.0 企业版开始支持个人下载
最新发现,Oracle 官方网站放开了 MySQL 9.3.0 企业版下载链接,个人用户也可以免费下载,不过只能用于学习、开发或者原型测试,不能用于生产环境。 通常我们都是下载 MySQL 社区版,不过 MySQL 企业版可以支持更多高级功能…...
QMK宏全面实战教程:从入门到精通(附17个实用案例)(理论部分)
🎯 QMK宏全面实战教程:从入门到精通(附17个实用案例) 大家好!作为一名机械键盘DIY爱好者和QMK固件深度玩家,今天我要带大家彻底掌握QMK宏的使用技巧!无论你是刚接触机械键盘的新手,还是想提升定制化水平的老玩家,这篇包含17个实战案例的教程都能满足你的需求! 🔍…...
H3C网络设备(交换机、路由器、防火墙)常用命令整理
H3C网络设备(交换机、路由器、防火墙)的常用命令整理。 一、H3C交换机常用命令 1. 基础操作 命令说明system-view进入系统视图quit返回上一级视图save保存配置display current-configuration查看当前配置(类似 show run)display…...
从前序与中序遍历序列构造二叉树(中等)
先从前序遍历列表取出第一个元素,这个元素就是根节点,然后从中序遍历中找到这个根节点,节点左侧就是该节点的左子树的节点集合,右侧就是该节点的右侧节点集合,然后递归构建左右子树。 /*** Definition for a binary t…...