Ich habe den folgenden Wert Ich ziehe von einem Modell, und versuchen, zu einem Boolean zu werfen. Wenn ich das Programm ausführe, bekomme ich einen Fehler, der besagt, dass 'jsonb type nicht in Boolean umgewandelt werden kann. Der Wert für den Jsonb-Wert ist hier ein Boolescher Wert. Warum kann er also nicht umgewandelt werden? Was muss ich ändern?Sql Alchemy kann Jsonb nicht zu Boolean
Der Datenwert, den ich zu bekommen habe versucht, die boolean aus {"unsubscribe" : "True"}
Hier ist die Linie, die den Fehler verursacht.
args.append(Customer.data['unsubscribed'].cast(sqlalchemy.Boolean) == "{}".format(True))
Hier ist das Modell Kunde ist
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
)
Ich denke, das richtige JSON wäre '{" unsubscribe ": true}', also ist es nicht wirklich ein boolesches ... Sie müssen stattdessen in eine Zeichenfolge umwandeln und als Zeichenfolge vergleichen. –
aber 'data ['unsubscribe']' 'würde ein boolesches' wahr 'zurückgeben, nicht wahr? – Rafa
sicherlich muss es irgendeinen Weg geben, nur den booleschen Wert zu erhalten – Rafa