{ "info": { "author": "Bob Wu", "author_email": "bob4open@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "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": "ojextends\n==============\n\n``ojextends`` allows you to extend the object class and convert ``JSON Documents`` to nested object parsing.\n\n``ojextends`` provides eight key methods to handle transformations.\n\n* `objectToDict` \n* `objectToStr` \n* `objectsToList` \n* `objectsToStr` \n* `objectFromDict` \n* `objectFromStr` \n* `objectsFromStr` \n* `objectsFromList`\n\n\n\n## Getting Started\n\nTo install using pip, simply run\n\n```code:shell\npip install ojextends\n```\n\nDependencies\n------------\n``ojextends`` only uses the json library provided by the python system.\n\n\n\nUsage\n-----\nThe code below defines some simple models, and its natural mapping to json.\n\n```python\n\n from ojextends import JsonSerializable\n\n @JsonSerializable\n class Student(object):\n name = str\n age = int\n books = list\n\n @JsonSerializable\n class Teacher(object):\n name = str\n students = list([Student])\n\n @JsonSerializable\n class School(object):\n name = str\n teachers = list([Teacher])\n\n @JsonSerializable\n class Area(object):\n name = str\n schools = list([School])\n\n```\nExample of transformations to parse Area lookup response for item:\n\n```python\n\n import json\n import requests\n from ojextends import JsonSerializable\n\n def get_areas(areaid):\n url = 'https://127.0.0.1/area/lookup?id={}'\n return requests.get(url.format(area_id)).json()\n\n areajson = get_areas(518000)\n print(areajson)\n\n area = Area.objectToDict(areajson)\n print(area.schools)\n school = area.schools[0] if len(area.schools) else School()\n print(school.name)\n```\n\nThe code above produces next result:\n\n\n```json\n\n {\n \"name\":\"shenzhen\",\n \"student\":{\n \"name\":\"Bob\",\n \"age\":20\n },\n \"schools\":[\n {\n \"name\":\"Shenzhen university\",\n \"teachers\":[\n {\n \"name\":\"Mike\",\n \"students\":[\n {\n \"name\":\"Lily\",\n \"age\":18,\n \"books\":[\n \"book1\",\n \"book2\"\n ]\n },\n {\n \"name\":\"Stone\",\n \"age\":21\n }\n ]\n }\n ]\n },\n {\n \"name\":\"Shenzhen normal university\",\n \"teachers\":[\n {\n \"name\":\"Linda1\",\n \"students\":[\n {\n \"name\":\"Bob\",\n \"age\":20,\n \"books\":[]\n },\n {\n \"name\":\"Tom\",\n \"age\":23\n }\n ]\n }\n ]\n }\n ]\n}\n\n```\n\nSee tests.py for more examples.\n\n\nTests\n-----\nGetting the tests running looks like:\n\n```code:shell\n\n# Install dependencies\n$ pip install -r requirements.txt\n# Run the test suites\n$ python tests.py\n```\nLicense\n-------\n\nThe MIT License (MIT)\n\nContributed by [Bob Wu](https://github.com/bob4open/)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bob4open/ojextends", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ojextends", "package_url": "https://pypi.org/project/ojextends/", "platform": "", "project_url": "https://pypi.org/project/ojextends/", "project_urls": { "Homepage": "https://github.com/bob4open/ojextends" }, "release_url": "https://pypi.org/project/ojextends/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "A lightweight library for transferring json to nested objects.", "version": "0.1.2" }, "last_serial": 5782028, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "59c37ac2cd654c31583cac2254e8b255", "sha256": "0ae463a9dbd8e9e6c0a422c6780b187d80ee34415196bc52fc2847cdffa9175c" }, "downloads": -1, "filename": "ojextends-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "59c37ac2cd654c31583cac2254e8b255", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 5421, "upload_time": "2019-09-04T14:38:19", "url": "https://files.pythonhosted.org/packages/41/cc/2052952cd364c6f5467ad489d977ca59e02c8422d7aad5dd647b50b867c9/ojextends-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "b8d91426d58794635dded35ed9dedc01", "sha256": "d6d6414ec06ec8c83d6346798a560847ca6d93841bae135e676c2c0b5ff5f7c9" }, "downloads": -1, "filename": "ojextends-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b8d91426d58794635dded35ed9dedc01", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4318, "upload_time": "2019-09-04T14:21:00", "url": "https://files.pythonhosted.org/packages/15/70/1c4bb3a6411db3e6e5decfbdb158085fba0eab903afa7de8557873afc8b7/ojextends-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f6bde49bd412c2603f7a874e162cea4", "sha256": "161fc35a32f48d355010c6b9d7884607f1d87de07d7d074541664883ec28d691" }, "downloads": -1, "filename": "ojextends-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5f6bde49bd412c2603f7a874e162cea4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4301, "upload_time": "2019-09-04T14:38:17", "url": "https://files.pythonhosted.org/packages/53/a2/fc739835fbd491b5abda0e3e3929392650a2109940f97f4eeddc988069de/ojextends-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed0208209178d16bba4b75f94270b992", "sha256": "7001525ce97560b1963192db0114b999a2d1c64669b5a3fb2ce409a6c1f60622" }, "downloads": -1, "filename": "ojextends-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ed0208209178d16bba4b75f94270b992", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4790, "upload_time": "2019-09-04T14:21:03", "url": "https://files.pythonhosted.org/packages/42/ac/964fa3c3920d9c667bcf669908f0f5b50e98645485e30acfeb1403700903/ojextends-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "25c326266f7dc5af1b66af2836f9bdd7", "sha256": "42def346536a91a8cf41d2501bfe5a9985cfab7a007b7b8eae52aecedfcef299" }, "downloads": -1, "filename": "ojextends-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "25c326266f7dc5af1b66af2836f9bdd7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4304, "upload_time": "2019-09-04T14:54:14", "url": "https://files.pythonhosted.org/packages/67/9c/3011f4ef7cde563274b956b81e5e5e825d20ad5d0416ef6c63546f4498fb/ojextends-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d057bf1d24588494e3af203ccf9c406", "sha256": "f7b8ef5beda653584892f27aef0baf1e6744e11b3b24fb3bfff1c0277302ba3f" }, "downloads": -1, "filename": "ojextends-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5d057bf1d24588494e3af203ccf9c406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4765, "upload_time": "2019-09-04T14:54:15", "url": "https://files.pythonhosted.org/packages/e9/a7/da0e4bbfc0a55a85778a78ceb2a8e368fb156a4b2ed87657b7beb1f44003/ojextends-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6a0d0438811eead1688562448e4ef38e", "sha256": "18f4c1ac0d95483e6876f47d23b4b0f33f075f4a1aa9021fdd6ea8a896b4a0ce" }, "downloads": -1, "filename": "ojextends-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6a0d0438811eead1688562448e4ef38e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4302, "upload_time": "2019-09-04T15:31:01", "url": "https://files.pythonhosted.org/packages/f2/3a/e42802a803636bd367dbcd6345490c3295a92359fdfb990287443ff4d204/ojextends-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ced447811224476db7ca6e8f68734b3", "sha256": "73cb132e892468b9b052ebaf8b89bc6347347a6c1d1696806cc9708e341e5b36" }, "downloads": -1, "filename": "ojextends-0.1.2.tar.gz", "has_sig": false, "md5_digest": "0ced447811224476db7ca6e8f68734b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4771, "upload_time": "2019-09-04T15:31:03", "url": "https://files.pythonhosted.org/packages/f6/9f/745c538ef1dddec5f91d52cb9678042d5c99cd9c03f6b033be210694a77c/ojextends-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6a0d0438811eead1688562448e4ef38e", "sha256": "18f4c1ac0d95483e6876f47d23b4b0f33f075f4a1aa9021fdd6ea8a896b4a0ce" }, "downloads": -1, "filename": "ojextends-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6a0d0438811eead1688562448e4ef38e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4302, "upload_time": "2019-09-04T15:31:01", "url": "https://files.pythonhosted.org/packages/f2/3a/e42802a803636bd367dbcd6345490c3295a92359fdfb990287443ff4d204/ojextends-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ced447811224476db7ca6e8f68734b3", "sha256": "73cb132e892468b9b052ebaf8b89bc6347347a6c1d1696806cc9708e341e5b36" }, "downloads": -1, "filename": "ojextends-0.1.2.tar.gz", "has_sig": false, "md5_digest": "0ced447811224476db7ca6e8f68734b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4771, "upload_time": "2019-09-04T15:31:03", "url": "https://files.pythonhosted.org/packages/f6/9f/745c538ef1dddec5f91d52cb9678042d5c99cd9c03f6b033be210694a77c/ojextends-0.1.2.tar.gz" } ] }