Convert Json to Dataframe

0

I have the following Json

[{
  "documentosVinculados": [
    {
      "fechaCreacion": "2018-05-08T15:56:51-03:00",
      "fechavinculacionDefinitiva": "2018-05-08T15:56:51-03:00",
      "numeroDocumento": "PT-2018-21487012",
      "referencia": "P",
      "tipodeDocumento": "PY",
      "usuarioAsociacion": "Pedro",
      "usuarioGenerador": "Pedro"
    },
    {
      "fechaCreacion": "2018-05-08T15:55:49-03:00",
      "fechavinculacionDefinitiva": "2018-05-08T15:56:11-03:00",
      "numeroDocumento": "2018-TT-YY",
      "referencia": "notificación",
      "tipodeDocumento": "OP",
      "usuarioAsociacion": "Pablo",
      "usuarioGenerador": "Pablo"
    }
  ],
  "historialOperacion": [
    {
      "destinatario": "PRES",
      "destinoCodigoReparticion": "DAT",
      "destinoCodigoSector": "PRES",
      "destinoDescripcionReparticion": "PRES",
      "destinoDescripcionSector": "Sector A",
      "estado": "Vacio",
      "expediente": "EX458855252",
      "fechaOperacion": "2018-05-08T15:56:51-03:00",
      "idExpediente": 986332,
      "motivo": "vinculación de notificación",
      "origenCodigoReparticion": "AA",
      "origenCodigoSector": "PRE",
      "origenDescripcionReparticion": "Dirección",
      "origenDescripcionSector": "Dirección",
      "tipoOperacion": "Pase",
      "usuario": "Pablo"
    },
    {
      "destinatario": "Pablo",
      "destinoCodigoReparticion": "DG",
      "destinoCodigoSector": "AA",
      "estado": "Tramitación",
      "expediente": "EX558966",
      "fechaOperacion": "2018-05-08T15:54:45-03:00",
      "idExpediente": 89633,
      "motivo": "Adquisición",
      "origenCodigoReparticion": "DG",
      "origenCodigoSector": "PRE",
      "tipoOperacion": "Adquisición",
      "usuario": "Raul"
    },
    {
      "destinatario": "DVAR",
      "destinoCodigoReparticion": "DGTT",
      "destinoCodigoSector": "PRET",
      "destinoDescripcionReparticion": "Dirección",
      "destinoDescripcionSector": "Pres",
      "estado": "Tramitación",
      "expediente": "EX201720",
      "fechaOperacion": "2018-04-17T12:51:31-03:00",
      "idExpediente": 85966,
      "motivo": "se adjunto nota",
      "origenCodigoReparticion": "DGPP",
      "origenCodigoSector": "PRE",
      "origenDescripcionReparticion": "Dirección",
      "origenDescripcionSector": "PRE",
      "tipoOperacion": "Pase",
      "usuario": "Carlos"
    }
  ]
}]

I would need to take only what is inside Operational History and convert it to a table view, I was testing options that panda but in all I have errors such as running

print(json_normalize(data['historialDeOperacion']))
TypeError: string indices must be integers
    
asked by Sebastian 11.05.2018 в 15:31
source

1 answer

0

Two observations:

  • You have a typographical problem, the dictionary key is historialOperacion instead of historialDeOperacion .

  • On the other hand, the base object is a list, apparently with only one element that is a dictionary, so in principle you should access like this: data[0] to just indicate the first item in the list.

    print(json_normalize(data[0]['historialOperacion']))
    

    Eventually if you had more than one item in this list you should cycle to each of these, for example:

    for e in data:
       print(json_normalize(e['historialOperacion']))
    
answered by 11.05.2018 / 18:47
source