pecan.jsonify
– Pecan JSON
Support¶
The pecan.jsonify
module includes support for JSON
rule
creation using generic functions.
-
class
pecan.jsonify.
GenericFunctionJSON
(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)¶ Bases:
pecan.jsonify.GenericJSON
-
default
(obj)¶ Converts an object and returns a
JSON
-friendly structure.Parameters: obj – object or structure to be converted into a JSON
-ifiable structureConsiders the following special cases in order:
- object has a callable __json__() attribute defined
returns the result of the call to __json__()
- date and datetime objects
returns the object cast to str
- Decimal objects
returns the object cast to float
- SQLAlchemy objects
returns a copy of the object.__dict__ with internal SQLAlchemy parameters removed
- SQLAlchemy ResultProxy objects
Casts the iterable ResultProxy into a list of tuples containing the entire resultset data, returns the list in a dictionary along with the resultset “row” count.
Note
{‘count’: 5, ‘rows’: [(‘Ed Jones’,), (‘Pete Jones’,), (‘Wendy Williams’,), (‘Mary Contrary’,), (‘Fred Smith’,)]}
- SQLAlchemy RowProxy objects
Casts the RowProxy cursor object into a dictionary, probably losing its ordered dictionary behavior in the process but making it JSON-friendly.
- webob_dicts objects
returns webob_dicts.mixed() dictionary, which is guaranteed to be JSON-friendly.
-
-
class
pecan.jsonify.
GenericJSON
(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)¶ Bases:
json.encoder.JSONEncoder
Generic JSON encoder. Makes several attempts to correctly JSONify requested response objects.
-
default
(obj)¶ Converts an object and returns a
JSON
-friendly structure.Parameters: obj – object or structure to be converted into a JSON
-ifiable structureConsiders the following special cases in order:
- object has a callable __json__() attribute defined
returns the result of the call to __json__()
- date and datetime objects
returns the object cast to str
- Decimal objects
returns the object cast to float
- SQLAlchemy objects
returns a copy of the object.__dict__ with internal SQLAlchemy parameters removed
- SQLAlchemy ResultProxy objects
Casts the iterable ResultProxy into a list of tuples containing the entire resultset data, returns the list in a dictionary along with the resultset “row” count.
Note
{‘count’: 5, ‘rows’: [(‘Ed Jones’,), (‘Pete Jones’,), (‘Wendy Williams’,), (‘Mary Contrary’,), (‘Fred Smith’,)]}
- SQLAlchemy RowProxy objects
Casts the RowProxy cursor object into a dictionary, probably losing its ordered dictionary behavior in the process but making it JSON-friendly.
- webob_dicts objects
returns webob_dicts.mixed() dictionary, which is guaranteed to be JSON-friendly.
-