python sqlalchemy对象关系映射失败,因为需要字符串,但提供了dict

python sqlalchemy对象关系映射失败,因为需要字符串,但提供了dict,python,sqlalchemy,Python,Sqlalchemy,我使用sqlalchemy(声明性)将大量json数据映射到db表。我有一个这样的模型: class Incident(Base): __tablename__ = 'incident' sys_id = Column(String(100), primary_key=True) state = Column(String) assigned_to = Column(String) { "sys_id": "123456&q

我使用sqlalchemy(声明性)将大量json数据映射到db表。我有一个这样的模型:

class Incident(Base):
    __tablename__ = 'incident'
    sys_id = Column(String(100), primary_key=True)
    state = Column(String)
    assigned_to = Column(String)
{
    "sys_id": "123456"
    "state": "Closed",
    "assigned_to": {
                "display_value": "Fred Bloggs",
                "link": "http://some.url"
            }
}
{
    "sys_id": "123456"
    "state": "Unassigned",
    "assigned_to": ""
}
数据如下所示:

class Incident(Base):
    __tablename__ = 'incident'
    sys_id = Column(String(100), primary_key=True)
    state = Column(String)
    assigned_to = Column(String)
{
    "sys_id": "123456"
    "state": "Closed",
    "assigned_to": {
                "display_value": "Fred Bloggs",
                "link": "http://some.url"
            }
}
{
    "sys_id": "123456"
    "state": "Unassigned",
    "assigned_to": ""
}
或者有时像这样:

class Incident(Base):
    __tablename__ = 'incident'
    sys_id = Column(String(100), primary_key=True)
    state = Column(String)
    assigned_to = Column(String)
{
    "sys_id": "123456"
    "state": "Closed",
    "assigned_to": {
                "display_value": "Fred Bloggs",
                "link": "http://some.url"
            }
}
{
    "sys_id": "123456"
    "state": "Unassigned",
    "assigned_to": ""
}
我得到一个错误,因为分配给字段的_有时是python字典。 sqlalchemy.exc.ProgrammingError:(pyodbc.ProgrammingError)(“无效参数类型.参数索引=1参数类型=dict”,“HY105”)


我有许多字段的格式与“assigned_to”相同。我只想把它们转换成字符串。我确信这是一个直截了当的说法,但这是我第一次接触sqlalchemy

为什么不使用JSON列类型而不是字符串(假设您的RDBMS有这样的类型)?那么sqlalchemy会自动处理序列化和反序列化吗?或者,如果您打算只传递字符串,则预处理数据以将DICT转储到json?看起来我无法使用json类型:sqlalchemy.exc.CompileError:(在表'incident'中,列'u_-region'):编译器无法呈现类型为的元素某些答案可能有用。