Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nicolaiarocci/json-datetime
Decoding of datetime values contained in JSON streams. A wrapper around simplejson `loads` method.
https://github.com/nicolaiarocci/json-datetime
Last synced: 18 days ago
JSON representation
Decoding of datetime values contained in JSON streams. A wrapper around simplejson `loads` method.
- Host: GitHub
- URL: https://github.com/nicolaiarocci/json-datetime
- Owner: nicolaiarocci
- License: isc
- Created: 2012-09-03T10:12:56.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T15:22:28.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T04:07:58.927Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 16.6 KB
- Stars: 13
- Watchers: 4
- Forks: 11
- Open Issues: 6
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
JSON-datetime
=============
.. image:: https://secure.travis-ci.org/nicolaiarocci/json-datetime.png?branch=master
:target: https://secure.travis-ci.org/nicolaiarocci/json-datetimeJSON-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:.. code-block:: python
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:.. code-block:: python
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 formatsCustom 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``