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)
| File | Size | Uploaded | |
|---|---|---|---|
| databind_json2-4.2.2.tar.gz | 13.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|