JSON Tree Parser
Project description
Script to generate a json tree
for key
and dumping the value
of the key
by tree
{"a": 1, "b": 2, "d": {"c": 3}} # 'root -> d -> c'
{"a": 1, "b": 2, "d": [{"c": 3}]} # 'root -> d -> [0] -> c'
Start
pip install jsontp
Example (API)
from jsontp import PageDataTree
from jsontp.utils import FileIO
from jsontp.config import Key
input_filepath = 'ranker_writer-ignore_me.json'
output_filepath = 'ranker_writer_user_content-ignore_me.json'
file_io = FileIO(input_filepath)
file_data = file_io.load()
pdt = PageDataTree(file_data)
pdt_tree = pdt.tree_by_key(key='user', result_to=Key.SAVE)
user_data = pdt.data_by_tree(next(pdt_tree))
file_io.dump(user_data, output_filepath)
Example (CLI)
# Search for `key` (-k), filter by `key` (-fk)
python -m jsontp -i <input_filepath> -k id -fk user
# Search for `key` (-k), filter by `key` (-fk), print the value for `tree`
python -m jsontp -i <input_filepath> -k id -fk user -o '*'
# Print the value for `tree` (NOTE: `-o <output_filepath>` - to dump a value)
python -m jsontp -i <input_filepath> -t 'root -> props -> ... -> user' -o '*'
Dependencies
pip -V # 22.1.1
python -V # 3.10.5
pytest -V # 6.2.5
Script structure
# tree -I '__pycache__|env|build|jsontp.egg-info'
.
├── jsontp
│ ├── __init__.py
│ ├── __main__.py
│ ├── config.py
│ ├── utils.py
│ └── run.py
├── tests
│ ├── __init__.py
│ └── test_page_data_tree.py
├── data
│ ├── ranker_writer-ignore_me.json
│ └── ranker_writer_user_content-ignore_me.json
├── setup.py
├── LICENSE
├── README.md
├── UPDATES.txt
└── CONTRIBUTORS.md
TODO
- nested json
- json in the list
- check for multiple keys
- return multiple keys (iterable result)
- unique multiple keys (not every single item in the list)
- check for keys by value
- access to the data in the list
- add and get the index from
tree
- add and get the index from
- handle errors on searching for a non string key
- fix errors on reading and writing to the json file without filename
- no need to test for writing
- raising an error
FileNotFoundError
for not valid input filepath
API
- Flags
CLI
- Input
- json file
- Key
- search:
str
- filter
tree
by must havekey
(-fk)- multiple (-fk)
- filter
tree
by must havevalue
(-fv)- multiple (-fv)
- result (config.py[Key]):
print
,return
- search:
- Limit
-
print
-
return
-
- Output
- dump a
value
to the file (-o <output_filepath>
) - append to the dump file
-
print
: '*'
- dump a
Coding process: https://youtu.be/DkBAIKMN7x0
License
MIT
Copyright (c) 2022 srcown://ames0k0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jsontp-1.0.3.tar.gz
(5.4 kB
view hashes)