É que é o seguinte, quando você abre o Jason no Python ele retorna um dicionário, e não um array. Um dicionário é uma estrutura de informações do tipo chave:valor, por exemplo:
- Código: Selecionar todos
xyz = {} # Declaro um dicionário vazio
xyz["nome"] = "Joãozinho" # Crio uma chave no dicionário cujo nome da chave é "nome", e cujo valor é "Joãozinho"
xyz["idade"] = 47 # Crio outra chave
print(xyz) # Vai mostar algo do tipo {'nome': 'Joãozinho', 'idade': 47}
print(xyz["nome"])
print(xyz["idade"])
No teu caso, quando você abre o Jason que você criou ali, ele vai retornar o seguinte dicionário:
- Código: Selecionar todos
{'CALIB': {'RPM': 2.3, 'TMP': 60000, 'TSET': [2.5, 3.7]}, 'SETUP': {'RPM': 7500, 'TMP': 3.5, 'TSET': [1.0, 1.67]}}
Esse é um dicionário que possui dois dicionários dentro. O primeiro você acessa com data["CALIB"] e retorna
- Código: Selecionar todos
{'RPM': 2.3, 'TMP': 60000, 'TSET': [2.5, 3.7]}
e o segundo você acessa com data["SETUP"] e retorna
- Código: Selecionar todos
{'RPM': 7500, 'TMP': 3.5, 'TSET': [1.0, 1.67]}
Para acessar aquele parâmetro TSET do dicionário SETUP, você acessa com data["SETUP"]["TSET"], e ele retorna
- Código: Selecionar todos
[1.0, 1.67]
Isso que ele retornou agora é uma lista (que é semelhante a um array, com a diferença que cada posição pode ter uma variável de qualquer tipo). Para acessar aquele valor 1.67 desta lista, você acessa com data["SETUP"]["TSET"][1], e ele vai retornar somente o float com esse valor.
Então assim, dicionário é dicionário, lista é lista. Quando você usa o json.load, ele retorna um dicionário, goste ou não. A vantagem é que se você cria um dicionário, você consegue exportar ele em json com a mesma facilidade. Porém, se você quer acessar os dados sem saber o nome dos campos, então json não é a melhor opção prá você, talvez devesse usar algum tipo de tabela e talvez exportar e importar um CSV, ou mesmo usar um arquivo de banco de dados do sqlite3.
Você pode até iterar nos valores, por exemplo usando um
- Código: Selecionar todos
for campo in data:
e campo vai receber o primeiro dicionário, depois que rodar vai receber o segundo dicionário, e assim por diante, mas de novo, tá perdendo o sentido de usar um arquivo de chave:valor como é o json, e o dicionário do python.
Note que se eu mudar o arquivo json para:
- Código: Selecionar todos
{
"SETUP": {
"RPM" : 7500,
"TMP" : 3.5,
"TSET": [1.0, 1.67]
},
"CALIB": {
"RPM" : 2.3,
"TMP" : 60000,
"TSET": [2.5, 3.7]
},
}
(eu inverti a ordem de CALIB e SETUP), o dicionário vai continuar igual e você continua acessando os valores de maneira igual, o que não acontece numa tabela.
É isso, espero ter ajudado um tiquinho.
98% das vezes estou certo, e não estou nem aí pros outros 3%.