{ "info": { "author": "tao.py", "author_email": "taojy123@163.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation", "Topic :: Software Development :: Libraries" ], "description": "# dnode\n\n`$ pip install dnode`\n\n```python\n\nfrom dnode import *\n\n\nprint('============== load data ===============')\n\ndata = {\n 'a': 1,\n 'b': {'b1': 3},\n 'c': {'c1': 1, 'c2': {'c22': 22}},\n 'd': ['d1', 'd2', 'd3'],\n 'e': [{'ee': 1}, {'ee': 2}, {'ee': 3}],\n 'f': [['f11', 'f12'], ['f21', 'f22']],\n 'g': [[{'gg': 11}, {'gg': 12}], [{'gg': 21}, {'gg': 22}]],\n}\n\nobj = DNode(data)\n\nprint(obj.serialize())\nassert obj.serialize() == data\n\nprint('=========== print object ===============')\n\nprint(obj)\nobj.pprint()\n\nprint('============= print json ===============')\n\nprint(obj.json) \n# or print(obj.dumps(indent=4))\n\nprint('=========== test getattr ===============')\n\nassert obj.a == 1\nassert obj.b.b1 == 3\nassert obj.c.c2 == {'c22': 22} == DNode({'c22': 22})\nassert obj.d[1] == 'd2'\nassert obj.e[1].ee == 2\nassert obj.f[0][0] == 'f11'\nassert obj.g[0][0].gg == 11\n\nprint('=========== test setattr ===============')\n\nobj.a = 'change_a'\nobj.b.b1 = 'change_b'\nobj.c.c2.c22 = 'change_c'\nobj.d[1] = 'change_d'\nobj.e[1].ee = 'change_e'\nobj.f[0][0] = 'change_f'\nobj.g[0][0].gg = 'change_g'\n\ndata = obj.serialize()\nassert data['a'] == 'change_a'\nassert data['b']['b1'] == 'change_b'\nassert data['c']['c2']['c22'] == 'change_c'\nassert data['d'][1] == 'change_d'\nassert data['e'][1]['ee'] == 'change_e'\nassert data['f'][0][0] == 'change_f'\nassert data['g'][0][0]['gg'] == 'change_g'\n\nprint('======== test set non-json type =========')\n\nobj.a = {1, 2, 3}\ndata = obj.serialize()\nassert data['a'] == None\n\nprint('============== test clear ===============')\n\nobj.clear()\nobj.pprint()\n\nprint('============== list init ================')\n\ndata = '[ {\"a\": 1}, [{\"b\": 2}, {\"c\": 3}] ]'\nrs = DNode(data)\nprint(rs)\nassert isinstance(rs, list)\nassert rs[0].a == 1\nassert rs[1][0].b == 2\nassert rs[1][1].c == 3\n\nprint('=========================================')\n\nprint('\\n\\n-------------- test SMNode ---------------')\n\nprint('========= test STRUCT_FIELDS ============')\n\nobj = SMNode({})\nSMNode.STRUCT_FIELDS = set(['aaa', 'bbb'])\nobj.aaa = 123\nobj.ccc = 456\nprint(obj.json) \nprint('`ccc` should not in the output')\n\nprint('=========================================')\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/taojy123/dnode", "keywords": "", "license": "MIT License", "maintainer": "tao.py", "maintainer_email": "taojy123@163.com", "name": "dnode", "package_url": "https://pypi.org/project/dnode/", "platform": "all", "project_url": "https://pypi.org/project/dnode/", "project_urls": { "Homepage": "https://github.com/taojy123/dnode" }, "release_url": "https://pypi.org/project/dnode/0.2.5/", "requires_dist": null, "requires_python": "", "summary": "read/write json as a object | \u50cf\u8bfb\u5199\u5bf9\u8c61\u5c5e\u6027\u4e00\u6837\u8bfb\u5199 json", "version": "0.2.5" }, "last_serial": 4163355, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "710a19fea344446402e969a1a8d5d387", "sha256": "5eb3622784341abb5dbea50a67c3838e4746d6fc98171d15846f765adce27151" }, "downloads": -1, "filename": "dnode-0.2.0.tar.gz", "has_sig": false, "md5_digest": "710a19fea344446402e969a1a8d5d387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3389, "upload_time": "2018-07-23T08:34:56", "url": "https://files.pythonhosted.org/packages/db/55/5c8e76a9fdcc07436494a38a96d309d6330f8ad8c924a8b2fb2307f97dd1/dnode-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "58c1353170c951aaab8e1849d6481612", "sha256": "08586ade081e08cfd2fbaf4e2e32cc47c0c05bfd34da733b86b025dce9c860ad" }, "downloads": -1, "filename": "dnode-0.2.1.tar.gz", "has_sig": false, "md5_digest": "58c1353170c951aaab8e1849d6481612", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3433, "upload_time": "2018-07-30T06:49:00", "url": "https://files.pythonhosted.org/packages/d3/52/549899e054577955be2a7c3b06c32d150c16a18e42e22277717fd89dfefa/dnode-0.2.1.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "149276914cdad2392e202fdab0615c3b", "sha256": "f4c0e715e2de5e65b58844150bee2b3ac120a85dae31e101e5805e9e6095b352" }, "downloads": -1, "filename": "dnode-0.2.3.tar.gz", "has_sig": false, "md5_digest": "149276914cdad2392e202fdab0615c3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3440, "upload_time": "2018-07-30T10:03:47", "url": "https://files.pythonhosted.org/packages/cd/10/a4aa9f1166cd1d2aef9e6416cced077821c8083a5f65279d2ffcdb0e7317/dnode-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "d6b25315303a010cdb6dcd44e1a5ec53", "sha256": "74af56fec341c8b880e7e8159ce8dc569180d48d950d4198a5b7dd887fececf1" }, "downloads": -1, "filename": "dnode-0.2.4.tar.gz", "has_sig": false, "md5_digest": "d6b25315303a010cdb6dcd44e1a5ec53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4414, "upload_time": "2018-08-03T05:51:02", "url": "https://files.pythonhosted.org/packages/08/5b/b5b8f6d2deb81fcc985ebd6db466eba4046c563c89a0f8f88cceeb457172/dnode-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "615f6028545ac3c6e7c7d24400d259cf", "sha256": "f53d634264c8f27539b70d1d4921caed2b0375061f45cedd17d14a397b77a064" }, "downloads": -1, "filename": "dnode-0.2.5.tar.gz", "has_sig": false, "md5_digest": "615f6028545ac3c6e7c7d24400d259cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4400, "upload_time": "2018-08-13T02:48:15", "url": "https://files.pythonhosted.org/packages/44/83/8e94c90296dbab14c189d5e7f5d5ed3b3495bc4965aee0188a7b6e1934e8/dnode-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "615f6028545ac3c6e7c7d24400d259cf", "sha256": "f53d634264c8f27539b70d1d4921caed2b0375061f45cedd17d14a397b77a064" }, "downloads": -1, "filename": "dnode-0.2.5.tar.gz", "has_sig": false, "md5_digest": "615f6028545ac3c6e7c7d24400d259cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4400, "upload_time": "2018-08-13T02:48:15", "url": "https://files.pythonhosted.org/packages/44/83/8e94c90296dbab14c189d5e7f5d5ed3b3495bc4965aee0188a7b6e1934e8/dnode-0.2.5.tar.gz" } ] }