使用Python数据类输出原始JSON

2024-04-25 17:39:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python数据类来帮助将我的SQL Alchemy数据模型输出为JSONas outlined here。问题是我的类属性之一是存储在数据库中的序列化非结构化JSON数据字符串,我希望能够将其作为原始JSON输出。问题是,我似乎找不到允许此操作的正确数据类型。我尝试过dict、json和object,但所有这些仍然会导致json字段中填充一个分隔字符串,如标记为“current output”的区域中所示。有没有一种方法可以在数据类中实现这一点

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"}
   }

Tags: 数据字符串idjsontruedbsqldata
1条回答
网友
1楼 · 发布于 2024-04-25 17:39:59

解决了!对于那些在将来发现这一点的人来说,如果你现在死定要将字符串转换为JSON,我的答案将不会有用,但是将SQL alchemy使用的数据类型设置为JSON解决了这个问题,因为SQL alchemy在从DB加载对象时处理字符串到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)

相关问题 更多 >