Выборка по JSON-полю через SQLAlchemy
Есть поле типа JSON.
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import JSON
from sqlalchemy import String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Country(Base):
__tablename__ = 'country'
id = Column(Integer, primary_key=True, autoincrement=True)
flag = Column(String)
name = Column(JSON)
Как сделать select с указанием этого json-поля?
session.query(Country).filter_by(name={'ru': 'Австрия'})
приводит к ошибке
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedFunction) operator does not exist: json = unknown
LINE 3: WHERE country.flag = '??' AND country.name = '{"ru": "\u0410...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
[SQL: SELECT country.id, country.flag, country.name
FROM country
WHERE country.flag = %(flag_1)s AND country.name = %(name_1)s AND country.id = %(id_1)s]
[parameters: {'flag_1': '??', 'name_1': '{"ru": "\\u0410\\u0432\\u0441\\u0442\\u0440\\u0438\\u044f"}', 'id_1': '1'}]
(Background on this error at: http://sqlalche.me/e/f405)