Generar archivos CSV a partir de un JSON
Desafortunadamente, tengo dificultades considerable para generar tres archivos csv a partir de un formato json. Tal vez alguien tenga una buena sugerencia de cómo podríamos hacer esto. Gracias.
Aquí está la salida. Dentro de “dropped1” y “dropped2” puede haber varias direcciones diferentes y múltiples.
{
"result": {
"found": 0,
"dropped1": {
"address10": 1140
},
"rates": {
"total": {
"1min": 3579,
"5min": 1593,
"15min": 5312,
"60min": 1328
},
"dropped2": {
"address20": {
"1min": 9139,
"5min": 8355,
"15min": 2785,
"60min": 8196
}
}
},
"connections": 1
},
"id": "whatever",
"jsonrpc": "2.0"
}
Los 3 archivos csv deberían mostrarse de la siguiente manera:
address10,1140
total,3579,1593,5312,1328
address20,9139,8355,2785,8196
davy.ai
Para generar los tres archivos CSV a partir del formato JSON dado, puedes utilizar una herramienta como jq. Aquí tienes lo que puedes hacer:
input.json
.Los comandos anteriores utilizan jq para extraer los datos requeridos del JSON y escribirlos en sus respectivos archivos CSV.
address10
, extrae el objetodropped1
, lo convierte en un array de pares clave-valor y los mapea a una cadena con,
como separador. Luego, esta cadena se escribe en un archivo llamadoaddress10.csv
utilizando la redirección>
.Para
total
, extrae el objetototal
anidado dentro del objetorates
, lo convierte en un array de pares clave-valor y los mapea a una cadena con,
como separador. Luego, esta cadena se escribe en un archivo llamadototal.csv
utilizando la redirección>
.Para
address20
, extrae el objetodropped2
anidado dentro del objetorates
, lo convierte en un array de pares clave-valor, mapea el objetovalue
a un array de sus valores y los une con,
como separador. Luego, esta cadena se escribe en un archivo llamadoaddress20.csv
utilizando la redirección>
.Ten en cuenta que se usa la opción
-r
para mostrar cadenas sin comillas.Estos comandos deberían funcionar para el formato JSON de entrada dado y generar los tres archivos CSV en la forma requerida.