class documentation

class JSONB(JSON):

Known subclasses: sqlalchemy.dialects.postgresql.asyncpg.AsyncpgJSONB, sqlalchemy.dialects.postgresql.pg8000._PGJSONB, sqlalchemy.dialects.postgresql.psycopg2._PGJSONB, sqlalchemy.dialects.postgresql.pygresql._PGJSONB

View In Hierarchy

Represent the PostgreSQL JSONB type.

The _postgresql.JSONB type stores arbitrary JSONB format data, e.g.:

data_table = Table('data_table', metadata,
    Column('id', Integer, primary_key=True),
    Column('data', JSONB)
)

with engine.connect() as conn:
    conn.execute(
        data_table.insert(),
        data = {"key1": "value1", "key2": "value2"}
    )

The _postgresql.JSONB type includes all operations provided by _types.JSON, including the same behaviors for indexing operations. It also adds additional operators specific to JSONB, including .JSONB.Comparator.has_key, .JSONB.Comparator.has_all, .JSONB.Comparator.has_any, .JSONB.Comparator.contains, and .JSONB.Comparator.contained_by.

Like the _types.JSON type, the _postgresql.JSONB type does not detect in-place changes when used with the ORM, unless the sqlalchemy.ext.mutable extension is used.

Custom serializers and deserializers are shared with the _types.JSON class, using the json_serializer and json_deserializer keyword arguments. These must be specified at the dialect level using _sa.create_engine. When using psycopg2, the serializers are associated with the jsonb type using psycopg2.extras.register_default_jsonb on a per-connection basis, in the same way that psycopg2.extras.register_default_json is used to register these handlers with the json type.

New in version 0.9.7.

See Also

_types.JSON

Class ​Comparator Define comparison operations for _types.JSON.
Class Variable __visit​_name__ Undocumented

Inherited from JSON:

Method __init__ Construct a _types.JSON type.
Instance Variable astext​_type Undocumented

Inherited from JSON (via JSON):

Class ​JSONElement​Type Common function for index / path elements in a JSON expression.
Class ​JSONIndex​Type Placeholder for the datatype of a JSON index value.
Class ​JSONInt​Index​Type Placeholder for the datatype of a JSON index value.
Class ​JSONPath​Type Placeholder type for JSON path operations.
Class ​JSONStr​Index​Type Placeholder for the datatype of a JSON index value.
Method bind​_processor Return a conversion function for processing bind values.
Method result​_processor Return a conversion function for processing result row values.
Constant NULL Describe the json value of NULL.
Method should​_evaluate​_none.setter Undocumented
Class Variable hashable Flag, if False, means values from this type aren't hashable.
Instance Variable none​_as​_null Undocumented
Property ​_str​_impl Undocumented
Property python​_type Return the Python type object expected to be returned by instances of this type, if known.
Property should​_evaluate​_none Alias of _types.JSON.none_as_null

Inherited from TypeEngine (via JSON, JSON):

Method adapt Produce an "adapted" form of this type, given an "impl" class to work with.
Method as​_generic Return an instance of the generic type corresponding to this type using heuristic rule. The method may be overridden if this heuristic rule is not sufficient.
Method bind​_expression Given a bind value (i.e. a .BindParameter instance), return a SQL expression in its place.
Method coerce​_compared​_value Suggest a type for a 'coerced' Python value in an expression.
Method column​_expression Given a SELECT column expression, return a wrapping SQL expression.
Method compare​_against​_backend Compare this type against the given backend type.
Method compare​_values Compare two values for equality.
Method compile Produce a string-compiled form of this .TypeEngine.
Method dialect​_impl Return a dialect-specific implementation for this .TypeEngine.
Method evaluates​_none Return a copy of this type which has the .should_evaluate_none flag set to True.
Method get​_dbapi​_type Return the corresponding type object from the underlying DB-API, if any.
Method literal​_processor Return a conversion function for processing literal values that are to be rendered directly without using binds.
Method with​_variant Produce a new type object that will utilize the given type when applied to the dialect of the given name.
Class Variable sort​_key​_function A sorting function that can be passed as the key to sorted.
Static Method ​_to​_instance Undocumented
Method __repr__ Undocumented
Method __str__ Undocumented
Method ​_cached​_bind​_processor Return a dialect-specific bind processor for this type.
Method ​_cached​_custom​_processor Undocumented
Method ​_cached​_literal​_processor Return a dialect-specific literal processor for this type.
Method ​_cached​_result​_processor Return a dialect-specific result processor for this type.
Method ​_compare​_type​_affinity Undocumented
Method ​_default​_dialect Undocumented
Method ​_dialect​_info Return a dialect-specific registry which caches a dialect-specific implementation, bind processing function, and one or more result processing functions.
Method ​_gen​_dialect​_impl Undocumented
Method ​_resolve​_for​_literal adjust this type given a literal Python value that will be stored in a bound parameter.
Method ​_unwrapped​_dialect​_impl Return the 'unwrapped' dialect impl for this type.
Method copy Undocumented
Method copy​_value Undocumented
Class Variable ​_is​_array Undocumented
Class Variable ​_is​_table​_value Undocumented
Class Variable ​_is​_tuple​_type Undocumented
Class Variable ​_is​_type​_decorator Undocumented
Class Variable ​_isnull Undocumented
Class Variable ​_sqla​_type Undocumented
Property ​_generic​_type​_affinity Undocumented
Property ​_has​_bind​_expression memoized boolean, check if bind_expression is implemented.
Property ​_has​_column​_expression memoized boolean, check if column_expression is implemented.
Property ​_static​_cache​_key Undocumented
Property ​_type​_affinity Return a rudimental 'affinity' value expressing the general class of type.

Inherited from Traversible (via JSON, JSON, TypeEngine):

Method get​_children Return immediate child .visitors.Traversible elements of this .visitors.Traversible.
Method __class​_getitem__ Undocumented
__visit_name__: str =

Undocumented