Skip to main content

databind.json

The databind.json package implements the de-/serialization to or from JSON payloads using the databind.core framework.

Check out the Documentation for examples.

Built-in converters

The following tables shows which types can be deserialized from / serialize to Python types with the native converters provided by the databind.json module:

Converter name Types Description
AnyConverter typing.Any Accept any value (useful for arbitrary JSON).
CollectionConverter typing.Collection[T], excl. str, bytes, bytearray, memoryview and typing.Mapping[K, V] Converts between native Python collections and JSON arrays.
DatetimeConverter datetime.date, datetime.datetime, datetime.time Converts between strings and date/time formats, using ISO 8601 time format by default (can be changed with the databind.core.settings.DateFormat setting).
DecimalConverter decimal.Decimal Converts between strings (and ints/floats if strict mode is off, strict mode is on by default) and decimals. The precision can be controlled with the databind.core.settings.Precision setting.
EnumConverter enum.Enum, enum.IntEnum Convert between strings and Python enumerations. The serialized form of IntEnum is the integer value, whereas the serialized form of Enum is a string (name of the enumeration value).
MappingConverter typing.Mapping[K, V] Converts between Python dicts and JSON objects. (While in theory K can be any type, for JSON K always needs to be str).
OptionalConverter typing.Optional[T] Handles optional fields in a schema.
PlainDatatypeConverter bytes, str, int, float, bool Converts between plain datatypes. In non-strict mode (off by default), numeric types will also accept strings as input for the deserialization.
SchemaConverter dataclasses.dataclass, typing.TypedDict Converts between Python dataclasses or typed dictionary and JSON objects.
UnionConverter typing.Union[...] Handles union types. Unions in JSON can be expressed in a multitide of ways, e.g. using a discriminator key and flat, keyed or nested structure or "best match". Check out the examples section of the documentation for more information.
LiteralConverter typing.Literal[...] Accepts or rejects a value based on whether it matches one of the values in the literal type hint.

The following converters are provided for convenience:

Converter name Types Description
StringifyConverter n/a A helper that allows to easily create de/serializers from a "to string" and "from string" function.

The following additional types are natively supported by databind.json using StringifyConverter:

Types Description
uuid.UUID Convert between strings and UUIDs.
pathlib.Path Convert between strings and paths.
pathlib.PurePath Convert between strings and paths.
nr.date.duration Deserialize from ISO 8601 duration strings or the object form, serialize to ISO 8601 strings.

Copyright © 2020 – Niklas Rosenstein

Metadata

Release files for databind-json2 4.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for databind-json2 4.2.2
File Size Uploaded
databind_json2-4.2.2.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for databind-json2 4.2.2
File Interpreter ABI Platform
databind_json2-4.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 25.8 kB

Release files / databind_json2-4.2.2.tar.gz

Download URL databind_json2-4.2.2.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0104e5bf22b4ed8bb4154d6edc34aeb8ff2cd0f49b2a0bdb064dc3c281de11a1
BLAKE2b-256 checksum
How to use checksums
9f2f713f1944abf0fceb1d9293d4ccb8ed7e526a3d211aff70e4a6e6d3d4d12a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.1 Darwin/22.2.0

Release files / databind_json2-4.2.2-py3-none-any.whl

Download URL databind_json2-4.2.2-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c01112bded802e583045600cb16a184dec2f25817fffc7080e5b53bd10109e0
BLAKE2b-256 checksum
How to use checksums
bb73b28ee8af93ada67fe9a584f661d80f9609b1e2eed5f5c8149f5587e97b50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.1 Darwin/22.2.0

Release history Release notifications | RSS feed

This release

4.2.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page