0
我從模型中拉出以下值,並嘗試將其轉換爲布爾值。但是,當我運行該程序時,我得到一個錯誤,指出不能將jsonb類型轉換爲布爾值。這裏的jsonb值的值是一個布爾值,爲什麼它不能投射它?我需要改變什麼?Sql Alchemy不能將jsonb轉換爲布爾值
,我試圖得到的數據值是布爾出來的{"unsubscribe" : "True"}
這是導致錯誤的行。
args.append(Customer.data['unsubscribed'].cast(sqlalchemy.Boolean) == "{}".format(True))
下面是用戶模型
class Customer(Base):
__tablename__ = 'customers'
id = Column(UUID, primary_key=True, server_default='uuid_generate_v4()')
phone_number = Column(String)
data = Column(JSONB)
created_at = Column(DateTime, server_default='NOW()')
updated_at = Column(DateTime, server_default='NOW()')
@property
def agent_number(self):
return self.data["agent"]["phoneNumber"]
def __repr__(self):
return '<Customer(id={}, phone_number={}, data={}, created_at={}, updated_at={})>'.format(
self.id,
self.phone_number,
self.data,
self.created_at,
self.updated_at
)
我認爲適當的JSON會有'{「unsubscribe」:true}',所以它不是一個真正的布爾值......你需要將其轉換爲字符串,並將其作爲字符串進行比較。 –
但是'data ['unsubscribe']'會返回一個布爾值'true'不是嗎? – Rafa
當然必須有一些方法來獲得布爾值 – Rafa