Given a JSON list of objects, flatten any keys which always contain single item arrays to just a single value
Project description
flatten-single-item-arrays
Given a JSON list of objects, flatten any keys which always contain single item arrays to just a single value
Installation
Install this tool using pip
:
$ pip install flatten-single-item-arrays
Usage
This will output the rewritten JSON:
$ flatten-single-item-arrays input.json
You can save it to a file like this:
$ flatten-single-item-arrays input.json > output.json
Use --debug
to see extra debugging information displayed on standard error:
$ flatten-single-item-arrays input.json --debug > output.json
Item count: 2
count_of_single_item_lists
{
"foo": 2
}
count_of_present_keys
{
"foo": 2,
"bar": 2
}
keys_to_reformat:
- foo
What this does
This tool accepts the path to a JSON file and outputs a modified version of that JSON file where any keys that are always single item lists are rewritten to a single value.
For example, the following input:
[
{
"foo": [
"bar"
],
"bar": 5
},
{
"foo": [
"baz"
],
"bar": 6
}
]
Will be transformed to this:
[
{
"foo": "bar",
"bar": 5
},
{
"foo": "baz",
"bar": 6
}
]
I built this to help work with data from the Airtable API, which often contains this single-item-list pattern.
Development
To contribute to this tool, first checkout the code. Then create a new virtual environment:
cd flatten-single-item-arrays
python -mvenv venv
source venv/bin/activate
Or if you are using pipenv
:
pipenv shell
Now install the dependencies and tests:
pip install -e '.[test]'
To run the tests:
pytest
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
Built Distribution
Hashes for flatten-single-item-arrays-0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88f44be0d158dbcb63b978dba84d8845ca03900ab869b44d36bf5884255b8827 |
|
MD5 | a76b5f0c82841983db341736e34196d1 |
|
BLAKE2b-256 | 315bcb08fccb86a4114485b3940e37466d858e210f2e64be33d8041aabf9efce |
Hashes for flatten_single_item_arrays-0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fab33e3517dc13e4468fca851dbc1f758cd537355c7d99dbd37c376824544499 |
|
MD5 | 75fe89a4752d7bbf7f2982e5de3f46a8 |
|
BLAKE2b-256 | 65f9ffb26b5a348204f5247fe65e8764cda1e578bf72b22edcb9b3e92abfc53d |