Convertidor JSON a CSV anidado.
Este script de Python convierte JSON válido y preformateado a CSV que se puede abrir en Excel y otras aplicaciones similares. Este script puede manejar json anidado con múltiples objetos y matrices. Consulte la explicación a continuación y los archivos de muestra para comprender cómo funciona. También puede manejar objetos no similares. Pero cuanto mayor sea la similitud de los objetos, más bonito será el resultado.
Escrito en Python 2.7. Probado por última vez en Python 3.6.3.
python /path/to/json_to_csv.py node json_in_file_path csv_out_file_path
El script espera que el json se proporcione a través de un archivo que contenga
Array
de Object
node
, por ejemplo: - {
"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" ]
}
}
]
}
list
de dictionaries
node
de argumento puede ser cualquier cadena relevante [
{
"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" ]
}
}
]
He escrito un generador JSON que se encargará de los problemas de codificación y generará un JSON válido para esta herramienta. Sin embargo, si te encuentras en el infierno de la codificación de caracteres, envíame un correo y agregaré soporte para esto. Esto ya está arreglado.
Visite la publicación sobre conversión de json anidado a csv en mi blog para leer más sobre este script.