{ "info": { "author": "O\u011fuzhan Ero\u011flu", "author_email": "rohanrhu2@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# python-jsonic\nPython bindings for [Jsonic](https://github.com/rohanrhu/jsonic) JSON reader library.\n\n## Install\nPIP:\n```bash\npip install pyjsonic\n```\n\nGit:\n```bash\ngit clone https://github.com/rohanrhu/python-jsonic\ncd python-jsonic\npython setup.py install\n```\n\n## Usage\n\n### Import\n```python\nimport jsonic\n```\n\n### Types and Functions\n\n#### Function: from_file\nRead file and returns `Jsonic()` object.\n```python\nroot = jsonic.from_file(\"file.json\")\n```\n\n#### Type: Jsonic\n```python\nroot = jsonic.Jsonic(\"[1, 2, 3, 4]\")\n```\n\n##### Member: Jsonic.type\nType member is useable for checking object and array types. Except object and array types, you will get regular python `str`, `float`, `bool` or `jsonic.Null` object.\n\n###### Type Checking\n###### Types\n`jsonic.TYPE_OBJECT`
\n`jsonic.TYPE_ARRAY`\n\n`Jsonic.type` is useable for objects or arrays. Object and array values returns as `Jsonic()` objects. Null values returns as `Jsonic.Null` object. Otherwise it returns as regular python types.\n\n##### Member: Jsonic.version\nVersion of python-jsonic.\n\n##### Member: Jsonic.json\nJSON String.\n\n##### Type: Jsonic.Null\nJSON Null type.\n\n##### Method: root()\nReturns JSON root's value if `root.type` is not an array or object. Otherwise it returns None.\n```python\nroot = jsonic.Jsonic(\"1234\")\nprint(root.root()) # 1234\n\nroot = jsonic.Jsonic(\"\\\"foo\\\"\")\nprint(root.root()) # foo\n\nroot = jsonic.Jsonic(\"true\")\nprint(root.root()) # True\n\nroot = jsonic.Jsonic(\"null\")\nprint(root.root()) # jsonic.Null\n\nroot = jsonic.Jsonic(\"{}\")\nprint(root.root()) # None\nprint(root.type) # jsonic.TYPE_OBJECT\n\nroot = jsonic.Jsonic(\"[]\")\nprint(root.root()) # None\nprint(root.type) # jsonic.TYPE_ARRAY\n```\n\n##### Method: len()\nGets length of array.\n\n##### Method: key(key)\nReturns the key's value.\n\n##### Method: item(index)\nReturns item of an index on array.\n\n#### Method: iterItem(index=0)\nIterates array item from last iterated item times index.\n\n```python\nroot = jsonic.Jsonic(\"[1, 2, 3, 4]\")\nprint(array.iterItem()) # 1\nprint(array.iterItem()) # 2\nprint(array.iterItem(1)) # 4\nprint(array.iterItem()) # None\narray.reset()\nprint(array.iterItem()) # 1\n```\n\n#### Method: iterKey(key)\nIterates object key from last iterated object.\n```python\nroot = jsonic.Jsonic(\"{\\\"a\\\": 1, \\\"b\\\": 2, \\\"c\\\": 3, \\\"d\\\": 4}\")\nprint(array.iterKey(\"a\")) # 1\nprint(array.iterKey(\"b\")) # 2\nprint(array.iterKey(\"c\")) # 3\nprint(array.iterKey(\"b\")) # None\narray.reset()\nprint(array.iterKey(\"b\")) # 2\n```\n\n#### Method: reset()\nResets iteration current.\n\n## Example\nAn example for reading JSON data\n\n```python\nimport jsonic\n\nroot = jsonic.from_file(\"heroes.json\")\n\nprint(\"Root Type: %d\" % root.type)\nprint(\"Squad: %s\" % root.iterKey(\"squadName\"))\nprint(\"Hometown: %s\" % root.iterKey(\"homeTown\"))\nprint(\"Formed: %d\" % root.iterKey(\"formed\"))\nprint(\"Active: %d\" % root.iterKey(\"active\"))\n\nmembers = root.iterKey(\"members\")\n\nprint(\"Members: (%d total)\" % members.len())\nwhile True:\n member = members.iterItem()\n if not member: break\n\n name = member.iterKey(\"name\")\n age = member.iterKey(\"age\")\n powers = member.iterKey(\"powers\")\n\n print(\"\\tName: %s\" % name)\n print(\"\\tAge: %s\" % age)\n print(\"\\tPowers (%d total):\" % powers.len())\n while True:\n power = powers.iterItem()\n if not power:break\n\n print(\"\\t\\t%s\" % power)\n\n print()\n```\n\nExample JSON (heroes.json):\n```json\n{\n \"squadName\": \"Super hero squad\",\n \"homeTown\": \"Metro City\",\n \"formed\": 2016,\n \"secretBase\": \"Super tower\",\n \"active\": true,\n \"members\": [\n {\n \"name\": \"Molecule Man\",\n \"age\": 29,\n \"secretIdentity\": \"Dan Jukes\",\n \"powers\": [\n \"Radiation resistance\",\n \"Turning tiny\",\n \"Radiation blast\"\n ]\n },\n {\n \"name\": \"Madame Uppercut\",\n \"age\": 39,\n \"secretIdentity\": \"Jane Wilson\",\n \"powers\": [\n \"Million tonne punch\",\n \"Damage resistance\",\n \"Superhuman reflexes\"\n ]\n },\n {\n \"name\": \"Eternal Flame\",\n \"age\": 1000000,\n \"secretIdentity\": \"Unknown\",\n \"powers\": [\n \"Immortality\",\n \"Heat Immunity\",\n \"Inferno\",\n \"Teleportation\",\n \"Interdimensional travel\"\n ]\n }\n ]\n}\n```\n\n## Syntax Checking\nThis library does not check JSON syntax, so you may get `SIGSEGV` or maybe infinite loops for **corrupt JSONs**. Likewise in some cases of corrupt JSONs, it would work as properly.\n\n## Performance\nThere are some example JSONs and reading examples in `examples/` folder for profiling the performance.\n\n## C Library\nYou can use [Jsonic](https://github.com/rohanrhu/jsonic) JSON reader library for C/C++.\n\n## License\nMIT", "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/rohanrhu/python-jsonic", "keywords": "json,parser,reader", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyjsonic", "package_url": "https://pypi.org/project/pyjsonic/", "platform": "", "project_url": "https://pypi.org/project/pyjsonic/", "project_urls": { "Homepage": "https://github.com/rohanrhu/python-jsonic" }, "release_url": "https://pypi.org/project/pyjsonic/1.8/", "requires_dist": null, "requires_python": "", "summary": "Python bindings for Jsonic JSON reader library.", "version": "1.8" }, "last_serial": 5964355, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "942d3bae2b3d41c3e874f4ba1642977b", "sha256": "168bd36af417071e6eb66207b633bba768b2ba544458e866670496143eb8310a" }, "downloads": -1, "filename": "pyjsonic-1.0.tar.gz", "has_sig": false, "md5_digest": "942d3bae2b3d41c3e874f4ba1642977b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4309, "upload_time": "2019-10-09T12:31:37", "url": "https://files.pythonhosted.org/packages/00/23/737ed3c9d946f03a8ff367a9ad413e0a2a5480956243231e021f7ef88860/pyjsonic-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "07ba602a366694b752dcf32faa068404", "sha256": "2b8bc32e43800b75b38599848b9db80195c78ae96079f9314ed8b5c077db65ce" }, "downloads": -1, "filename": "pyjsonic-1.1-py3.7-win32.egg", "has_sig": false, "md5_digest": "07ba602a366694b752dcf32faa068404", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 5755, "upload_time": "2019-10-09T13:38:07", "url": "https://files.pythonhosted.org/packages/6b/76/988572c07a0dfadd9bc07bfaa17544184bb6ef75c2fbfbf450c45b9e3e05/pyjsonic-1.1-py3.7-win32.egg" }, { "comment_text": "", "digests": { "md5": "c1024c466e3919e9b8fa3fbfb5ce4b05", "sha256": "a4828462063676be385e6ead0f60493a79458c3c80390be6f86ff48b67b7b5c5" }, "downloads": -1, "filename": "pyjsonic-1.1.tar.gz", "has_sig": false, "md5_digest": "c1024c466e3919e9b8fa3fbfb5ce4b05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10692, "upload_time": "2019-10-09T13:28:46", "url": "https://files.pythonhosted.org/packages/2a/8e/280eb0cb7efa544e48f6dce05d28fb03bcdf96e2fd31ec7c98c3ce9b9caf/pyjsonic-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "a1a07bbf5dc3a313895d7253ebf23218", "sha256": "56683c57c04b1d4b74328a8bc88a99e1f3db0b0054b1774ab2008ec345882e22" }, "downloads": -1, "filename": "pyjsonic-1.2.tar.gz", "has_sig": false, "md5_digest": "a1a07bbf5dc3a313895d7253ebf23218", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10686, "upload_time": "2019-10-09T13:38:08", "url": "https://files.pythonhosted.org/packages/ad/93/b1c93b8c0c5d2ac22fe312b738b7f95c93bbce168276abf598ac378480be/pyjsonic-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "33797367c7528dc30c75d590d4febe7a", "sha256": "8eb4aebf81f33dfa2fc5c166d3848c70e3ab9cd3c4818e46d05bc894b38cfa4f" }, "downloads": -1, "filename": "pyjsonic-1.3.tar.gz", "has_sig": false, "md5_digest": "33797367c7528dc30c75d590d4febe7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10720, "upload_time": "2019-10-09T16:48:23", "url": "https://files.pythonhosted.org/packages/05/43/74bb0bd44f846250db88c8297ebedaff05fa5dd5cc4cd75d6033f27023ee/pyjsonic-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "96b9bdf939a20a4eae097ec5ca7a535a", "sha256": "46f9129fdc21e71e2e2fc7ac9a873a79ec88f3bddc2414918c668380c8b92107" }, "downloads": -1, "filename": "pyjsonic-1.4-py3.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "96b9bdf939a20a4eae097ec5ca7a535a", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 34274, "upload_time": "2019-10-10T06:01:23", "url": "https://files.pythonhosted.org/packages/37/97/6c81939c66712d202ca35b0054d04d7b1561e5d2a217218d0d3320b03fe0/pyjsonic-1.4-py3.7-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "13d2c9542ede19ae51f1227bf5d0e4ef", "sha256": "1a332416de0f4ca3d097b6c6e2ba255a3ef63e2743ef7a63c32509d076f1aca8" }, "downloads": -1, "filename": "pyjsonic-1.4.tar.gz", "has_sig": false, "md5_digest": "13d2c9542ede19ae51f1227bf5d0e4ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10732, "upload_time": "2019-10-10T06:01:24", "url": "https://files.pythonhosted.org/packages/60/48/1a36f528e4974f885f8d56b8d0d5fcb8ff7f0b7d9ccc24ed3807e3adf810/pyjsonic-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "70e8cf8ebb99cfb91594dc77614f2004", "sha256": "0ad24689259265b5d0fb01343670bf0e68c9c243aa0377e0101ebd958c476ea1" }, "downloads": -1, "filename": "pyjsonic-1.5-py3.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "70e8cf8ebb99cfb91594dc77614f2004", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 34295, "upload_time": "2019-10-10T15:58:52", "url": "https://files.pythonhosted.org/packages/1b/f4/6ab03ddc7c5bbc362bfb20a8a6a523d52724cb2f3e8c659f74ca56c2ac93/pyjsonic-1.5-py3.7-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "1bbd58e846c8afdc324f0764cb0e5f74", "sha256": "d7c7a67ab3d0cab9a1f3e044a75ec51198a10a2dc61f695a131db76573e48ac9" }, "downloads": -1, "filename": "pyjsonic-1.5.tar.gz", "has_sig": false, "md5_digest": "1bbd58e846c8afdc324f0764cb0e5f74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10788, "upload_time": "2019-10-10T06:09:57", "url": "https://files.pythonhosted.org/packages/51/4b/8147b2ab09936466fffefc2da2ebfa7c308385b84a30c09f798c8d996a15/pyjsonic-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "df229ca053df1b8f84eaac11da9f3c89", "sha256": "651eb5ef4b105fd610d2811a60c9730b3d8a4542869e8208d86ad578dd43a79f" }, "downloads": -1, "filename": "pyjsonic-1.6-py3.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "df229ca053df1b8f84eaac11da9f3c89", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 35155, "upload_time": "2019-10-10T15:58:54", "url": "https://files.pythonhosted.org/packages/1b/4a/8b66e6423c894bfee0cd7b9aba80f37d1ba186d2a713593e355dad830f06/pyjsonic-1.6-py3.7-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "6970d29ee2d83f68f6a2c8ede87c358b", "sha256": "1e57f744cb5592fa9364b9ec0e25ae4515ccc626d999a98a5a0b0ffcfabf60bb" }, "downloads": -1, "filename": "pyjsonic-1.6.tar.gz", "has_sig": false, "md5_digest": "6970d29ee2d83f68f6a2c8ede87c358b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10967, "upload_time": "2019-10-10T15:58:57", "url": "https://files.pythonhosted.org/packages/19/d3/fa53ed4c44d5f4f6316df402edee56d8e48f142cc792fe92a993aa9a39dc/pyjsonic-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "773bae1950eb8f3794eae0afa143644e", "sha256": "ba27b6280a5148b32aee352647ed4496bc6ceb824bc9c65e9c66a5b3807e49c9" }, "downloads": -1, "filename": "pyjsonic-1.7-py3.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "773bae1950eb8f3794eae0afa143644e", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 35145, "upload_time": "2019-10-11T13:57:56", "url": "https://files.pythonhosted.org/packages/73/93/6978b99b29b8a3a8330fcce352b5326ef9e553343c43a1ac4769d8c7f568/pyjsonic-1.7-py3.7-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "e161581c92dfe7abfdc1d0f7ac491b7f", "sha256": "39834ab531c364a5f2be16be1c6b08f0ba18d7bc747a4bd8f59ef9ea4a7f45ee" }, "downloads": -1, "filename": "pyjsonic-1.7.tar.gz", "has_sig": false, "md5_digest": "e161581c92dfe7abfdc1d0f7ac491b7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10964, "upload_time": "2019-10-11T13:57:58", "url": "https://files.pythonhosted.org/packages/7b/2b/258f2d8125032c7490335aa163176410c6e6ddbbb3040eab020d42f9ecb7/pyjsonic-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "a4f0e69f17879db868b17b5834e0d3aa", "sha256": "fbe1908c3e29c4a91fd47fb9c5e258f7ecc26faf145a629a39497428e75cdcd4" }, "downloads": -1, "filename": "pyjsonic-1.8.tar.gz", "has_sig": false, "md5_digest": "a4f0e69f17879db868b17b5834e0d3aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10966, "upload_time": "2019-10-12T13:54:05", "url": "https://files.pythonhosted.org/packages/43/c2/1d678528f23731823c09373e1732743aee47a1244a67551550c6b0850203/pyjsonic-1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a4f0e69f17879db868b17b5834e0d3aa", "sha256": "fbe1908c3e29c4a91fd47fb9c5e258f7ecc26faf145a629a39497428e75cdcd4" }, "downloads": -1, "filename": "pyjsonic-1.8.tar.gz", "has_sig": false, "md5_digest": "a4f0e69f17879db868b17b5834e0d3aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10966, "upload_time": "2019-10-12T13:54:05", "url": "https://files.pythonhosted.org/packages/43/c2/1d678528f23731823c09373e1732743aee47a1244a67551550c6b0850203/pyjsonic-1.8.tar.gz" } ] }