https://github.com/alingse/jsoncsv
a command tool easily convert json file to csv or xlsx wiki https://deepwiki.com/alingse/jsoncsv
https://github.com/alingse/jsoncsv
convert csv json json2csv json2excel json2xls tools
Last synced: 2 days ago
JSON representation
a command tool easily convert json file to csv or xlsx wiki https://deepwiki.com/alingse/jsoncsv
- Host: GitHub
- URL: https://github.com/alingse/jsoncsv
- Owner: alingse
- License: apache-2.0
- Created: 2016-07-27T12:36:09.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-01T13:07:29.000Z (about 3 years ago)
- Last Synced: 2025-12-05T23:26:37.832Z (2 months ago)
- Topics: convert, csv, json, json2csv, json2excel, json2xls, tools
- Language: Python
- Homepage: https://jsoncsv-web.vercel.app
- Size: 126 KB
- Stars: 100
- Watchers: 5
- Forks: 24
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
jsoncsv : easily convert json to csv or xls[x]
==============================================
|pypi| |build| |coverage|
.. |pypi| image:: https://img.shields.io/pypi/v/jsoncsv.svg
:target: https://pypi.python.org/pypi/jsoncsv
.. |build| image:: https://api.travis-ci.org/alingse/jsoncsv.svg?branch=master
.. |coverage| image:: https://coveralls.io/repos/github/alingse/jsoncsv/badge.svg
:target: https://coveralls.io/github/alingse/jsoncsv
jsoncsv (with `mkexcel`) is a command tool to convert json file to csv/xlsx file.
It's simple, and no need user to specify the keys.
Just use them.
Quick Start :
=================
Cat the raw.json to csv/xls use command line tool
.. code-block:: bash
cat raw.json | jsoncsv | mkexcel > output.csv
cat raw.json | jsoncsv | mkexcel -t xls > output.xls
Each line of raw json text file is a json object
.. code-block:: json
{"id":1, "name":"A", "year": 2015}
{"id":2, "name":"S", "zone": "china"}
Jsoncsv will output a csv file
.. code-block::
id,name,year,zone
1,A,2015,
2,S,,china
This is easily and needn't care the different keys from any two object.
For Json Array
-------------------
If input file is an json_array, use `-A/--array` to decode it
.. code-block:: bash
cat raw.json | jsoncsv -A | mkexcel > output.csv
**Input File**
.. code-block:: json
[
{"id":1, "name":"A", "year": 2015},
{"id":2, "name":"S", "zone": "china"}
]
**Output File**
.. code-block::
id,name,year,zone
1,A,2015,
2,S,,china
Step by Step
---------------------------
.. code-block:: bash
$jsoncsv raw.json expand.json
$mkexcel expand.json -t xls output.xls
get more options with `--help`.
.. code-block:: bash
jsoncsv --help
mkexcel --help
Install
================
.. code-block:: bash
pip install jsoncsv
Usage
=================
see #QuickStart and get more options with `--help`.
just expand/restore the json, the expand json is one layer json.
.. code-block:: bash
jsoncsv raw.json expand.json
jsoncsv -r expand.json raw.json
cat raw.json | jsoncsv | jsoncsv -r > raw2.json
mkexcel the expanded json (one layer)
.. code-block:: bash
mkexcel expand.json output.csv
mkexcel -t xls expand.json > output.xls
mkexcel -t csv expand.json > output.csv
-e, --expand
-------------
expand json, 展开 json
.. code-block:: bash
$jsoncsv -e raw.json expand.json
$cat raw.json expand.json
{"s":[1,2,{"w":1}]}
{"s.2.w": 1,"s.0": 1,"s.1": 2}
{"s":[1,2,{"w":1}]} will transformed to {"s.2.w": 1,"s.0": 1,"s.1": 2}
the output "expand.json" is only one layer json, it can be easy change to csv or xlsx (with `mkexcel`)
-r, --restore
---------------
restore the expanded json 重构被展开的json
.. code-block:: bash
jsoncsv -r expand.json raw.json
cat expand.json raw.json
{"s.2.w": 1,"s.0": 1,"s.1": 2}
{"s": [1, 2, {"w": 1}]}
{"s.2.w": 1,"s.0": 1,"s.1": 2} change to {"s":[1,2,{"w":1}]}
-s, --separator
---------------
separator used for combine the keys in the tree
default separator is **.**
--safe
---------
on safe mode, use escape separator to avoid confilct
expand:
['aa', 'bb', 'www.xxx.com'] --> 'aa\\.bb\\.www.xxx.com'
restore:
'aa\\.bb\\.www.xxx.com' --> ['aa', 'bb', 'www.xxx.com']
mkexcel
>>>>>>>>>>>
dump expanded (by **jsoncsv**) json file to csv or xls file
.. code-block:: bash
mkexcel expand.json output.csv
-t, --type
--------------
chose dump type in ['csv', 'xls'] default is 'csv'
.. code-block:: bash
cat expand.json|mkexcel -t csv > output.csv
cat expand.json|mkexcel -t xls > output.xls
NOTE/TODO
>>>>>>>>>
1. dict keys can't be just array indexes
--------------------------------------------
example:
.. code-block:: bash
echo '{"0":1,"1":[1,2]}'|jsoncsv -e| jsoncsv -r
[1, [1, 2]]
2. mkexcel enable hooks
-----------------------------------------
wait next next version
3. unicodecsv is not good enough
-----------------------------------------
but better than python strand library csv.
4. Windows is poor support
-----------------------------------------
see https://github.com/alingse/jsoncsv/issues/37
try use https://jsoncsv-web.vercel.app instead