{ "info": { "author": "Maxim Kamenkov", "author_email": "mkamenkov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "jsonobjects\n==============\n\n``jsonobjects`` allows you to declaratively specify how to extract and convert elements from a JSON document.\n\n\nInstallation\n------------\nWe recommend the use of `virtualenv `_ and of\n`pip `_. You can then use ``pip install -U jsonobjects``.\nYou may also have `setuptools `_ and thus\nyou can use ``easy_install -U jsonobjects``. Otherwise, you can download the\nsource from `GitHub `_ and run ``python\nsetup.py install``.\n\n\nDependencies\n------------\nAll dependencies are optional.\n\n- `JMESPath `_ to allow advanced queries (see `JMESPath `_ documentation for details).\n- `dateutil `_ to allow iso-8601 date formats.\n\n\nUsage\n-----\n\nExample of schema to parse iTunes lookup response for software item:\n\n.. code:: python\n\n import json\n import requests\n import jsonobjects as jo\n\n\n class iTunesAppSchema(jo.Schema):\n id = jo.IntegerField('trackId')\n url = jo.Field('trackViewUrl')\n name = jo.StringField('trackName')\n currency = jo.StringField()\n price = jo.FloatField(min_value=0.0)\n rating = jo.FloatField('averageUserRating')\n reviews = jo.IntegerField('userRatingCountForCurrentVersion')\n version = jo.StringField()\n publisher_id = jo.IntegerField('artistId')\n publisher_url = jo.Field('artistViewUrl')\n publisher_name = jo.StringField('artistName')\n categories = jo.ListField('genres', child=jo.StringField())\n icon = jo.Field(\n ['artworkUrl512', 'artworkUrl60'], post_process=lambda v: {'url': v})\n screenshots = jo.ListField(\n 'screenshotUrls', child=jo.Field(post_process=lambda v: {'url': v}))\n\n\n parser = iTunesAppSchema('results[0]')\n\n\n @parser.as_decorator\n def get_app_details(app_id):\n url = 'https://itunes.apple.com/lookup?id={}'\n return requests.get(url.format(app_id)).json()\n\n # https://itunes.apple.com/lookup?id=880047117\n details = get_app_details(880047117)\n print(details)\n\nThe code above produces next result:\n\n.. code:: python\n\n {\n \"categories\": [\"Games\", \"Puzzle\", \"Action\"],\n \"currency\": \"USD\",\n \"icon\": {\"url\": \"http://is3.mzstatic.com/image/thumb/Purple3/v4/27/f0/d9/27f0d923-e00b-5f2c-a1e9-235ed3f83d14/source/512x512bb.jpg\"},\n \"id\": 880047117,\n \"name\": \"Angry Birds 2\",\n \"price\": 0.0,\n \"publisher_id\": 298910979,\n \"publisher_name\": \"Rovio Entertainment Ltd\",\n \"publisher_url\": \"https://itunes.apple.com/us/developer/rovio-entertainment-ltd/id298910979?uo=4\",\n \"rating\": 4.0,\n \"reviews\": 4796,\n \"screenshots\": [\n {\"url\": \"http://a4.mzstatic.com/us/r30/Purple3/v4/5c/5e/54/5c5e542c-54a1-7812-12df-045aca3ebb86/screen1136x1136.jpeg\"},\n {\"url\": \"http://a1.mzstatic.com/us/r30/Purple3/v4/95/50/db/9550dbba-9cbf-d588-fac4-5ebf04614023/screen1136x1136.jpeg\"},\n {\"url\": \"http://a5.mzstatic.com/us/r30/Purple3/v4/22/ef/e7/22efe7c2-bd05-6f58-f176-92e7230853bd/screen1136x1136.jpeg\"},\n {\"url\": \"http://a2.mzstatic.com/us/r30/Purple69/v4/72/44/ba/7244ba34-6c8c-5dc5-38e4-e134a97cd0d1/screen1136x1136.jpeg\"},\n {\"url\": \"http://a5.mzstatic.com/us/r30/Purple6/v4/1b/e4/98/1be49811-f5be-cb3f-1a31-a20b5f5663ee/screen1136x1136.jpeg\"}\n ],\n \"url\": \"https://itunes.apple.com/us/app/angry-birds-2/id880047117?mt=8&uo=4\",\n \"version\": \"2.2.1\"\n }\n\nSee tests.py for more examples.\n\n\nTests\n-----\nGetting the tests running looks like:\n\n.. code-block:: shell\n\n # Install dependencies\n $ pip install -r requirement.txt\n # Run the test suites\n $ python tests.py\n\nLicense\n-------\n\nThe MIT License (MIT)\n\nContributed by `Maxim Kamenkov `_", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/caxap/jsonobjects", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "jsonobjects", "package_url": "https://pypi.org/project/jsonobjects/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jsonobjects/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/caxap/jsonobjects" }, "release_url": "https://pypi.org/project/jsonobjects/1.0.3/", "requires_dist": null, "requires_python": null, "summary": "JSONObjects allows you to declaratively specify how to extract and convert elements from a JSON document.", "version": "1.0.3" }, "last_serial": 1811946, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "e13996a9d5b199b4f068ac6217d05eac", "sha256": "812a68b09eb7a6f591cb313caa0bfdcd7e2a8cea0685a2f4fb4b06d10e889507" }, "downloads": -1, "filename": "jsonobjects-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e13996a9d5b199b4f068ac6217d05eac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13487, "upload_time": "2015-11-09T01:44:49", "url": "https://files.pythonhosted.org/packages/84/8e/f9b5a9a15b22d661206edb96ca78916cf29a95a088226fae43aba0c927b0/jsonobjects-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "f00b7417d992cfbe7a38b6f1b403e07c", "sha256": "4078cb693383d21cb4432571f51b89156bf8f0d99bf9af1aa3d80ee20b780822" }, "downloads": -1, "filename": "jsonobjects-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f00b7417d992cfbe7a38b6f1b403e07c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13746, "upload_time": "2015-11-10T13:54:39", "url": "https://files.pythonhosted.org/packages/15/20/e9588b12dc2dff62033d7d5fb8a6603a055e9500d2efb0aca0460e8e84fa/jsonobjects-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "b3777308cbfdd5fa7d62630d8d784605", "sha256": "990cb3b9012e5e08f1e9fa7546b38e8abc6211b5e1c28faed33756e151a81334" }, "downloads": -1, "filename": "jsonobjects-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b3777308cbfdd5fa7d62630d8d784605", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13807, "upload_time": "2015-11-11T17:04:49", "url": "https://files.pythonhosted.org/packages/21/57/6a0a7a69310343901d0a87f50f855bcf4430803b67ec64a78ccbfd6ae5a0/jsonobjects-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "cf28d808b63bde727a9ca57e86e09784", "sha256": "7a11306fc0b3b289d16ffc3218b0eebef341c8f36d520e56648c260ef020948a" }, "downloads": -1, "filename": "jsonobjects-1.0.3.tar.gz", "has_sig": false, "md5_digest": "cf28d808b63bde727a9ca57e86e09784", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13885, "upload_time": "2015-11-11T17:57:41", "url": "https://files.pythonhosted.org/packages/d5/e8/1889e5877916895682eb63b1945cf2d35b8bd207786dcca299e7f4be6d6d/jsonobjects-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cf28d808b63bde727a9ca57e86e09784", "sha256": "7a11306fc0b3b289d16ffc3218b0eebef341c8f36d520e56648c260ef020948a" }, "downloads": -1, "filename": "jsonobjects-1.0.3.tar.gz", "has_sig": false, "md5_digest": "cf28d808b63bde727a9ca57e86e09784", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13885, "upload_time": "2015-11-11T17:57:41", "url": "https://files.pythonhosted.org/packages/d5/e8/1889e5877916895682eb63b1945cf2d35b8bd207786dcca299e7f4be6d6d/jsonobjects-1.0.3.tar.gz" } ] }