class documentation

class MONEY(sqltypes.TypeEngine):

View In Hierarchy

Provide the PostgreSQL MONEY type.

Depending on driver, result rows using this type may return a string value which includes currency symbols.

For this reason, it may be preferable to provide conversion to a numerically-based currency datatype using _types.TypeDecorator:

import re
import decimal
from sqlalchemy import TypeDecorator

class NumericMoney(TypeDecorator):
    impl = MONEY

    def process_result_value(self, value: Any, dialect: Any) -> None:
        if value is not None:
            # adjust this for the currency and numeric
            m = re.match(r"\$([\d.]+)", value)
            if m:
                value = decimal.Decimal(m.group(1))
        return value

Alternatively, the conversion may be applied as a CAST using the _types.TypeDecorator.column_expression method as follows:

import decimal
from sqlalchemy import cast
from sqlalchemy import TypeDecorator

class NumericMoney(TypeDecorator):
    impl = MONEY

    def column_expression(self, column: Any):
        return cast(column, Numeric())
New in version 1.2.
Class Variable __visit​_name__ Undocumented
__visit_name__: str =

Undocumented