# Jsoner
Convenient and fast adding objects to json file
## Installation
`pip install jsoner-lib`
## A simple example
```python
from pydantic import BaseModel
class Dog(BaseModel):
name: str
angry: bool
class Cat(BaseModel):
name: str
lazy: bool
class Person(BaseModel):
name: str
age: str
animals: list[Cat | Dog] | None
"""
the so-called imaginary data that you get, for example, when parsing a website
"""
persons = [
Person(name="Alex", age=40, animals=[Cat(name="Terminator", lazy=False)]),
Person(name="Victor", age=24, animals=[Dog(name="Barsic", angry=True)]),
Person(name="Michle", age=59, animals=[Cat(name="Barbon", lazy=True)]),
Person(name="Tomas", age=42, animals=[Cat(name="Spider", lazy=False)]),
Person(name="Robert", age=30, animals=[Cat(name="Kraul", lazy=True)]),
Person(name="Antony", age=29, animals=[Cat(name="Green", lazy=False)])
]
jsn = Jsoner(models=[Person], filename="persons.json")
for psn in persons:
jsn.append(psn)
jsn.save(indent=4)
## persons.json
"""
[
{
"name": "Alex",
"age": "40",
"animals": [
{
"name": "Terminator",
"lazy": false
}
]
},
{
"name": "Victor",
"age": "24",
"animals": [
{
"name": "Barsic",
"angry": true
}
]
},
{
"name": "Michle",
"age": "59",
"animals": [
{
"name": "Barbon",
"lazy": true
}
]
},
...
...
"""
```
You can find examples in file /example/
Raw data
{
"_id": null,
"home_page": "https://github.com/kradt/jsoner",
"name": "jsoner-lib",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "",
"keywords": "jsoner",
"author": "kradt",
"author_email": "sidorenkoarem950@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/19/2e/6d4df56cdeac7180010a2b9fcb74bcd6bff8642e236d5dd1515ca7ce89f0/jsoner-lib-0.5.tar.gz",
"platform": null,
"description": "# Jsoner\n\nConvenient and fast adding objects to json file\n\n## Installation\n\n`pip install jsoner-lib`\n\n## A simple example\n```python\nfrom pydantic import BaseModel\n\n\nclass Dog(BaseModel):\n name: str\n angry: bool\n\n\nclass Cat(BaseModel):\n name: str\n lazy: bool\n\n\nclass Person(BaseModel):\n name: str\n age: str\n animals: list[Cat | Dog] | None\n\n\"\"\"\n the so-called imaginary data that you get, for example, when parsing a website\n\"\"\"\npersons = [\n Person(name=\"Alex\", age=40, animals=[Cat(name=\"Terminator\", lazy=False)]),\n Person(name=\"Victor\", age=24, animals=[Dog(name=\"Barsic\", angry=True)]),\n Person(name=\"Michle\", age=59, animals=[Cat(name=\"Barbon\", lazy=True)]),\n Person(name=\"Tomas\", age=42, animals=[Cat(name=\"Spider\", lazy=False)]),\n Person(name=\"Robert\", age=30, animals=[Cat(name=\"Kraul\", lazy=True)]),\n Person(name=\"Antony\", age=29, animals=[Cat(name=\"Green\", lazy=False)])\n]\n\njsn = Jsoner(models=[Person], filename=\"persons.json\")\n\n\nfor psn in persons:\n jsn.append(psn)\n\njsn.save(indent=4)\n\n\n## persons.json\n\"\"\"\n[\n {\n \"name\": \"Alex\",\n \"age\": \"40\",\n \"animals\": [\n {\n \"name\": \"Terminator\",\n \"lazy\": false\n }\n ]\n },\n {\n \"name\": \"Victor\",\n \"age\": \"24\",\n \"animals\": [\n {\n \"name\": \"Barsic\",\n \"angry\": true\n }\n ]\n },\n {\n \"name\": \"Michle\",\n \"age\": \"59\",\n \"animals\": [\n {\n \"name\": \"Barbon\",\n \"lazy\": true\n }\n ]\n },\n...\n...\n\"\"\"\n```\n\nYou can find examples in file /example/\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "",
"version": "0.5",
"project_urls": {
"Homepage": "https://github.com/kradt/jsoner"
},
"split_keywords": [
"jsoner"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f601f69efd36eeedb5a828925794c9329c2a292126f26773ea43c4fb9930db8f",
"md5": "bc8b1b28e232b53f0a01ab374b45c2e0",
"sha256": "88c8ebf2e65b3c4f611e71a9b00db1e8f980b9e2b5077070865db09cb0381890"
},
"downloads": -1,
"filename": "jsoner_lib-0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc8b1b28e232b53f0a01ab374b45c2e0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 3680,
"upload_time": "2023-07-03T01:43:45",
"upload_time_iso_8601": "2023-07-03T01:43:45.863273Z",
"url": "https://files.pythonhosted.org/packages/f6/01/f69efd36eeedb5a828925794c9329c2a292126f26773ea43c4fb9930db8f/jsoner_lib-0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "192e6d4df56cdeac7180010a2b9fcb74bcd6bff8642e236d5dd1515ca7ce89f0",
"md5": "6983209f7b73adfd5bda476c23192544",
"sha256": "47d590a55cbbf2989ca2a1a5894f350860cd0c02ec9bec40a3dce868a4180322"
},
"downloads": -1,
"filename": "jsoner-lib-0.5.tar.gz",
"has_sig": false,
"md5_digest": "6983209f7b73adfd5bda476c23192544",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 3381,
"upload_time": "2023-07-03T01:43:47",
"upload_time_iso_8601": "2023-07-03T01:43:47.407600Z",
"url": "https://files.pythonhosted.org/packages/19/2e/6d4df56cdeac7180010a2b9fcb74bcd6bff8642e236d5dd1515ca7ce89f0/jsoner-lib-0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-03 01:43:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kradt",
"github_project": "jsoner",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "jsoner-lib"
}