如何将 Pydantic 对象列表转换为 JSON 字符串

问题描述 投票:0回答:1

以下代码成功将

UserSQLAlchemyModel
列表转换为
UserPydanticModel
列表:

users_from_db = session.scalars(select(UserSQLAlchemyModel)).all()
users = TypeAdapter(list[UserPydanticModel]).validate_python(users_from_db)

现在如何将

users
转换为 JSON 字符串?我注意到使用
dump_json
而不是
validate_python
有效,但问题是
exclude
dump_json
参数没有效果,并且没有关于
dump_json
的文档。我也很想知道
dump_json
是否跳过验证。

python pydantic
1个回答
0
投票

首先,

import json

将列表转换为您的 UserPydanticModel 列表:

users = [UserPydanticModel.from_orm(user) for user in users_from_db]

要排除 json 中的字段:

json_str = [user.json(exclude={'some_field_to_exclude'}) for user in users]

如果要将 JSON 字符串列表转换为单个 JSON 字符串:

final_json_str = json.dumps(json_str)
© www.soinside.com 2019 - 2024. All rights reserved.