[Python] Leitura do arquivo Json em Python (iniciante) [fechada]

Discussão em 'Python' iniciado por Stack, Novembro 19, 2024.

  1. Stack

    Stack Membro Participativo

    Bom dia! Estou começando no python e não estou conseguindo fazer a leitura de dois campos específicos no json gerado, com o seguinte formato:


    [
    {
    "nomeArq": "arquivoA",
    "dataAnt": "28042020",
    "dataAtu": "30042020",
    "qtdAnt": 1500,
    "qtdAtu": 2500,
    "percDif": 66.80
    },
    {
    "nomeArq": "arquivoB",
    "dataAnt": "28042020",
    "dataAtu": "30042020",
    "qtdAnt": 1000,
    "qtdAtu": 1700,
    "percDif": 70.00
    },
    {
    "nomeArq": "arquivoC",
    "dataAnt": "28042020",
    "dataAtu": "30042020",
    "qtdAnt": 2500,
    "qtdAtu": 2125,
    "percDif": -15.00
    }
    ]

    Na leitura do arquivo, ele interpreta como uma lista, e eu preciso pegar os campos nomeArq e percDif para fazer um gráfico no pyplot. Consigo visualizar o conteúdo no campo em um print, mas não consigo fazer nenhuma movimentação ou dar um append na lista que usarei para gerar o gráfico. Tentei converter para string mas também não funcionou:

    with open(nomeArquivoJson, 'r') as jsonFileLeitura:
    dadosJson = json.load(jsonFileLeitura)
    print(dadosJson)
    print(dadosJson[0])
    print(dadosJson[0]['nomeArq'])

    for i in dadosJson:
    nomeOrg = str(dadosJson['nomeOrg'])
    print(nomeOrg)

    listaNomeOrg.append(dadosJson['nomeOrg'])
    listaPercVar.append(dadosJson['percDif'])

    print(listaNomeOrg)
    print(listaPercVar)


    O retorno, junto com o erro, é:

    [{'nomeArq': 'arquivoA', 'dataAnt': '28042020', 'dataAtu': '30042020', 'qtdAnt': 1500, 'qtdAtu': 2500, 'percDif': 66.8}, {'nomeArq': 'arquivoB', 'dataAnt': '28042020', 'dataAtu': '30042020', 'qtdAnt': 1000, 'qtdAtu': 1700, 'percDif': 70.0}, {'nomeArq': 'arquivoC', 'dataAnt': '28042020', 'dataAtu': '30042020', 'qtdAnt': 2500, 'qtdAtu': 2125, 'percDif': -15.0}]
    {'nomeArq': 'arquivoA', 'dataAnt': '28042020', 'dataAtu': '30042020', 'qtdAnt': 1500, 'qtdAtu': 2500, 'percDif': 66.8}
    arquivoA
    Traceback (most recent call last):
    File "/home/millena/Documentos/poc-monit/poc2GeraGraficov2.py", line 80, in <module>
    geraGrafico()
    File "/home/millena/Documentos/poc-monit/poc2GeraGraficov2.py", line 40, in geraGrafico
    nomeOrg = str(dadosJson['nomeArq'])
    TypeError: list indices must be integers or slices, not dict


    Como faço para fazer a leitura desses dois campos (nomeArq e PercDif) para poder adicioná-los numa lista para fazer o gráfico?

    Obrigada!

    Continue reading...

Compartilhe esta Página