Skip to main content

Converts nested json object to csv and csv back to json

Project description

libjson2csv
========

*Converts nested json object to csv and csv back to json*

This package provides functionality to convert valid nested json objects/files to csv and vice versa.

Written in python 3

Usage
-----

To convert json to csv
```
usage: python -m libjson2csv.json_2_csv [--m] <json_in_file_path> [<csv_out_file_path>]
```

To convert csv to json
```
usage: python -m libjson2csv.csv_2_json <csv_in_file_path> [<json_out_file_path>]
```

If the output file path is not provided the output will be dumped to STDOUT.

Specifications
--------------

Scripts expects a valid json.

* JSON can be a valid nested object or a list.
* Script will convert each item of the list to a corresponding row in the csv.
* If JSON is dictionary the outputted csv will contain single row.

Example:

*Converts JSON*

```json
{
"key_1_1": "val_1_1_1",
"key_1_2": [
"val_1_2_1",
"val_1_2_2",
"val_1_2_3"
],
"key_1_3": [{
"key_1_3_2_1": "val_1_3_2_1_1"
}, {
"key_1_3_2_1": "val_1_3_2_1_2"
}, {
"key_1_3_2_1": "val_1_3_2_1_3"
}],
"key_1_4": {
"key_1_4_2_1": "val_1_4_2_1_1"
},
"key_1_5": {
"key_1_5_2_1": [{
"key_1_5_2_3_1": "val_1_5_2_3_1_1"
}]
}
}
```

*TO*

Without `--m` flag

|key_1_1 | key_1_2[0] | key_1_2[1] | key_1_2[2] | key_1_3[0].key_1_3_2_1 | key_1_3[1].key_1_3_2_1 | key_1_3[2].key_1_3_2_1 | key_1_4.key_1_4_2_1 | key_1_5.key_1_5_2_1[0].key_1_5_2_3_1|
|----|----|----|----|----|----|----|----|----|
|val_1_1_1 | val_1_2_1 | val_1_2_2 | val_1_2_3 | val_1_3_2_1_1 | val_1_3_2_1_2 | val_1_3_2_1_3 | val_1_4_2_1_1 | val_1_5_2_3_1_1|

With `--m` flag

|*key_1_2|key_1_1|key_1_3[0].key_1_3_2_1|key_1_3[1].key_1_3_2_1|key_1_3[2].key_1_3_2_1|key_1_4.key_1_4_2_1|key_1_5.key_1_5_2_1[0].key_1_5_2_3_1|
|----|----|----|----|----|----|----|
|val_1_2_1;val_1_2_2;val_1_2_3|val_1_1_1|val_1_3_2_1_1|val_1_3_2_1_2|val_1_3_2_1_3|val_1_4_2_1_1|val_1_5_2_3_1_1|

`--m` stores a simple list in a single column with items separated by a semicolon.

0.1.0 (2017-04-15)
------------------
- Initial version.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libjson2csv-0.1.1.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

libjson2csv-0.1.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file libjson2csv-0.1.1.tar.gz.

File metadata

  • Download URL: libjson2csv-0.1.1.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for libjson2csv-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2d15539ff1513acf50d21e7458a2a502df1eb081852cc186a7f4d2b6d6516aa2
MD5 59864062b6d8b08b1378b3ecef260fca
BLAKE2b-256 18bb40ba0373f9ae190b50634ca350096ceffe43a6d785f4ba30821d165d3c0e

See more details on using hashes here.

File details

Details for the file libjson2csv-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for libjson2csv-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2dc84d76f726cfa3a898963ac83a052b87349cc764cd9f175ac9df8fc945db21
MD5 c143d362f2633f273906074de3c394c4
BLAKE2b-256 1760acb47d1899d8320c183b815428e5109ab5ff5d1b53c8074bb597ca6bb5d4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page