使用 Python 数据类输出原始 JSON
Using Python Dataclasses to output raw JSON
我正在使用 Python 数据 classes 来帮助将我的 SQL Alchemy 数据模型输出为 JSON as outlined here。问题是我的 class 属性之一是存储在数据库中的一串序列化非结构化 JSON 数据,我希望能够将其输出为原始 JSON。问题是我似乎无法找到允许这样做的正确数据类型。我已经尝试过 dict、json 和对象,但所有这些仍然导致 JSON 字段被填充为分隔字符串,如标记为“当前输出”的区域。有没有办法用 dataclasses 做到这一点?
class Event(db.Model):
id: int
data: ???
__tablename__ = "data"
id = db.Column('id', db.Integer, primary_key=True, autoincrement=True)
data = db.Column('data', db.Text, nullable=True)
当前输出:
{
"id": 1,
"data": "{\"data\": \"this is data\"}"
}
预期输出:
{
"id": 1,
"data": {"data": "this is data"}
}
已解决!对于那些将来发现这个问题的人,如果你在这一点上已经死定了将字符串转换为 JSON,我的回答将没有用,但是将 SQL alchemy 使用的数据类型设置为 JSON 解决了问题是 SQL Alchemy 在从数据库加载对象时将字符串处理为 JSON 转换。
class Event(db.Model):
id: int
data: json
__tablename__ = "data"
id = db.Column('id', db.Integer, primary_key=True, autoincrement=True)
data = db.Column('data', db.JSON, nullable=True)
我正在使用 Python 数据 classes 来帮助将我的 SQL Alchemy 数据模型输出为 JSON as outlined here。问题是我的 class 属性之一是存储在数据库中的一串序列化非结构化 JSON 数据,我希望能够将其输出为原始 JSON。问题是我似乎无法找到允许这样做的正确数据类型。我已经尝试过 dict、json 和对象,但所有这些仍然导致 JSON 字段被填充为分隔字符串,如标记为“当前输出”的区域。有没有办法用 dataclasses 做到这一点?
class Event(db.Model):
id: int
data: ???
__tablename__ = "data"
id = db.Column('id', db.Integer, primary_key=True, autoincrement=True)
data = db.Column('data', db.Text, nullable=True)
当前输出:
{
"id": 1,
"data": "{\"data\": \"this is data\"}"
}
预期输出:
{
"id": 1,
"data": {"data": "this is data"}
}
已解决!对于那些将来发现这个问题的人,如果你在这一点上已经死定了将字符串转换为 JSON,我的回答将没有用,但是将 SQL alchemy 使用的数据类型设置为 JSON 解决了问题是 SQL Alchemy 在从数据库加载对象时将字符串处理为 JSON 转换。
class Event(db.Model):
id: int
data: json
__tablename__ = "data"
id = db.Column('id', db.Integer, primary_key=True, autoincrement=True)
data = db.Column('data', db.JSON, nullable=True)