Skip to main content

json.dumps with datetime, date and bson.ObjectId support

Project description

json.dumps with datetime, date and bson.ObjectId support

>>> from datetime import datetime, date, timedelta, timezone
>>> from decimal import Decimal
>>> from bson import ObjectId
>>> import asjson
>>> data = {
...     'time': [
...         date(2018, 3, 6),
...         datetime(2018, 3, 6, 9, 38, 0, 1),
...         datetime(2018, 3, 6, 9, 38, 0, 1).replace(
...             tzinfo=timezone.utc),
...     ],
...     'decimal': Decimal('3.14'),
...     'objectid': ObjectId('a' * 24),
... }

We can make all the values json-appropriate without dumping the structure to string. It can be helpful in some cases, e.g. with passing it into database json field.

>>> asjson.encode(data)
{'time': ['2018-03-06',
         '2018-03-06T09:38:00.000001',
         '2018-03-06T09:38:00.000001+00:00'],
     'decimal': '3.14',
     'objectid': 'aaaaaaaaaaaaaaaaaaaaaaaa'}

For dumping to string we can use asjson.dumps which takes the same parameters as standard json.dumps does plus debug which just a shortcut for json.dumps(…, indent=4, sort_keys=True, ensure_askii=False):

>>> print(asjson.dumps(data, debug=True))
{
    "decimal": "3.14",
    "objectid": "aaaaaaaaaaaaaaaaaaaaaaaa",
    "time": [
        "2018-03-06",
        "2018-03-06T09:38:00.000001",
        "2018-03-06T09:38:00.000001+00:00"
    ]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asjson-3.0.0.tar.gz (2.2 kB view details)

Uploaded Source

File details

Details for the file asjson-3.0.0.tar.gz.

File metadata

  • Download URL: asjson-3.0.0.tar.gz
  • Upload date:
  • Size: 2.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for asjson-3.0.0.tar.gz
Algorithm Hash digest
SHA256 919285397066cace2a430ea83e7bd09e5d2ef2777d4ab9b8922d7c15e921f9af
MD5 c4b9f9ae94e1072aa073f36deb641194
BLAKE2b-256 0884c3ce2005d6c0f239b511398b45a5f0620aff6b06a180a6984feac37b13d3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page