Nested JSON to CSV Converter.
This python script converts valid, preformatted JSON to CSV which can be opened in excel and other similar applications. This script can handle nested json with multiple objects and arrays. Please see the explanation below and the sample files to understand how this works. It can handle non similar objects too. But, more the similarity of the objects, prettier the output.
Written in Python 2.7
python /path/to/json_to_csv.py node_name json_in_file_path csv_out_file_path
The script expects the json to be given via a file containing
- A valid JSON
- The JSON can be an
Array
ofnode
Object
Ex:-
{
"node":[
{
"item_1":"value_11",
"item_2":"value_12",
"item_3":"value_13",
"item_4":["sub_value_14", "sub_value_15"],
"item_5":{
"sub_item_1":"sub_item_value_11",
"sub_item_2":["sub_item_value_12", "sub_item_value_13"]
}
},
{
"item_1":"value_21",
"item_2":"value_22",
"item_4":["sub_value_24", "sub_value_25"],
"item_5":{
"sub_item_1":"sub_item_value_21",
"sub_item_2":["sub_item_value_22", "sub_item_value_23"]
}
}
]
}
- The JSON can be a
list
ofdictionaries
[
{
"item_1":"value_11",
"item_2":"value_12",
"item_3":"value_13",
"item_4":["sub_value_14", "sub_value_15"],
"item_5":{
"sub_item_1":"sub_item_value_11",
"sub_item_2":["sub_item_value_12", "sub_item_value_13"]
}
},
{
"item_1":"value_21",
"item_2":"value_22",
"item_4":["sub_value_24", "sub_value_25"],
"item_5":{
"sub_item_1":"sub_item_value_21",
"sub_item_2":["sub_item_value_22", "sub_item_value_23"]
}
}
]
node_name
can be any relevant string if the JSON is a list of dictionaries
I have written a JSON generator which will take care of encoding issues and generate a valid JSON for this tool.
However, If you find yourself in the character encoding hell, drop me a mail and I will add support for this This is now fixed.
Visit http://askvinay.com/#post?Converting-Nested-JSON-to-CSV to read more about this script.