私は次の値を持っています。私はモデルから引き出してブール値にキャストしようとしています。しかし、私がプログラムを実行すると、 `` jsonbの型をbooleanにキャストできません。ここの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']'は真の真偽を返しますか? – Rafa
ブール値を取得するにはちょうど数えなければなりません – Rafa