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
相关产品推荐
相关产品推荐

