Allows for proper decoding of datetime values contained in JSON streams
Project description
JSON-datetime allows for proper decoding of datetime values contained in JSON streams.
The problem
The JSON standard RFC 4627 does not support datetime types. These are usually represented as strings and Python decoders end up decoding them as such. Consider the following example:
import simplejson as json
>>> test = '{"name": "John Doe", "born": "Thu, 1 Mar 2012 10:00:49 UTC"}'
>>> json.loads(test)
{'born': u'Thu, 1 Mar 2012 10:00:49 UTC', 'name': u'John Doe'}
As you can see, in the resulting dictionary born is still a string.
The solution
JSON-datetime is a very simple wrapper around Python simplejson loads method. It decodes datetime values contained in JSON strings:
import jsondatetime as json
>>> test = '{"name": "John Doe", "born": "Thu, 1 Mar 2012 10:00:49 UTC"}'
>>> json.loads(test)
{'name': 'John Doe', 'born': datetime.datetime(2012, 3, 1, 10, 0 ,49)}
Strings are parsed using dateutil.parser.parse which is fairly flexible for common datetime formats
Custom parsing
Being just a wrapper around the loads method, you can still use all the standard loads arguments, object_hook included. This means that you can still perform custom parsing of your inbound JSON stream.
Installation
pip install json-datetime
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
File details
Details for the file JSON-Datetime-0.0.6.tar.gz
.
File metadata
- Download URL: JSON-Datetime-0.0.6.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.12.1 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 975dde1877fe70a6d191794e8c82cebe386804e2067d9c35b3fdda3b4da72fe3 |
|
MD5 | c29c0f0b650724efb23a7553746589ad |
|
BLAKE2b-256 | 876a1d957962a483cf51455180e7a6e6972386f67f891ae5032f8b6c63b0af0a |