You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask请求转JSON时出现TypeError:set类型无法序列化问题咨询

Flask JSON序列化报错:TypeError: Object of type set is not JSON serializable 原因分析

Hey there, let's break down exactly why you're running into this error.

First, let's recap your code flow:

from flask import request
import json
req_data = request.get_json(force=True)
json_data = json.dumps(req_data)
json.loads(json_data)

核心报错原因

  • Python的内置json模块默认只支持序列化JSON原生数据类型:字符串、数字、列表、字典、布尔值和None。而Python的**集合(set)**不在这个支持范围内——JSON没有对应的集合数据结构。
  • 当request.get_json(force=True)解析请求体后,得到的req_data对象里包含了至少一个集合类型的元素。调用json.dumps(req_data)尝试将其转为JSON字符串时,序列化器无法处理集合,因此抛出了你看到的错误。

举个直观的例子

如果解析后的req_data是这样的:

req_data = {"tags": {"python", "flask"}}  # 这里"tags"的值是一个集合

运行json.dumps(req_data)时就会直接触发报错,因为JSON无法原生表示集合。

额外小提示

另外,你代码里json.dumps(req_data)之后又调用json.loads(json_data)完全是多余的!request.get_json()已经帮你把请求体解析成了Python对象,不需要再转成JSON字符串后再解析回来哦。

内容的提问来源于stack exchange,提问作者M.Hol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:09:19