我使用sqlalchemy orm将json映射到多个表。 我有两张桌子,每张桌子我都有一节课
其中一个表有一个参数,它是字典列表,必须映射到第二个表的不同列
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
Base = declarative_base()
class A(Base):
__tablename__ = 'a'
id = Column(primary_key, Interger(10))
param1 = Column(String(45))
param2 = Column(String(45))
atobmap = relationship('B', lazy='subquery', back_populates="a")
class B(Base):
__tablename__ = 'b'
bid = Column(primary_key=True, nullable=True, Integer(15))
bparam1 = Column(ForeignKey('a.id'), nullable=False)
bparam2 = Column(String(45))
a = relationship('A', back_populates='b')
示例json:
{
"id": 1,
"param1": "Value",
"param2": "Value",
"atobmap": [
{ "bid": 1,
"bparam1": 1,
"bparam2": "Value"
},
{ "bid": 2,
"bparam1": 1,
"bparam2": "Value"
}
]
}
当我手动将数据插入到表中并执行GET时,它工作正常,并按预期返回值,尽管它在atobmap字典中添加了一个值为{}的{sa\u instance\u state键
{
...
"atobmap": [
{ "_sa_instance_state": {}
"bid": 1,
"bparam1": 1,
"bparam2": "Value"
},
{ "_sa_instance_state": {}
"bid": 2,
"bparam1": 1,
"bparam2": "Value"
}
]
}
但是当我试图发布这些值时,它抛出一个错误说"Unhashable type: dict".
目前没有回答
相关问题 更多 >
编程相关推荐