python sqlalchemy对象关系映射失败,因为需要字符串,但提供了dict
我使用sqlalchemy(声明性)将大量json数据映射到db表。我有一个这样的模型: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
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'):编译器无法呈现类型为的元素某些答案可能有用。