Sobre JSON
JSON (JavaScript Object Notation) é um formato de arquivo e padrão de armazenamento de dados que usa pares de valores-chave para armazenar e trocar dados. É o formato de troca de dados mais amplamente usado, frequentemente visto em APIs RESTful, bancos de dados leves, arquivos de configuração e outros softwares offline ou online que precisam armazenar, recuperar e trocar dados. A maioria das linguagens de programação inclui bibliotecas para analisar e gravar dados JSON por padrão e JSON é um formato de dados agnóstico de linguagem de programação. Os valores armazenados em um arquivo JSON ou carga útil geralmente contêm strings, números e tipos de dados serializáveis como listas (matrizes).
Dicionários JSON e Python
Os dados JSON em python são convertidos em um objeto de dicionário usando o método “load”. Muitas vezes é visto que algumas pessoas equiparam dados json e um dicionário python, já que a sintaxe para definir ambos é quase a mesma. No entanto, os dados json nada mais são do que uma string de texto estruturada em uma sintaxe rígida, enquanto um dicionário python é um objeto de estrutura de dados armazenado na memória. Se você quiser armazenar dados de dicionário em um arquivo de texto ou enviá-los para outro programa não-python, você terá que primeiro convertê-los em uma string de texto (bytes). Esta string de texto despejada / convertida é definida na sintaxe padrão do JSON e o processo de conversão de um dicionário Python em uma string compatível com json é chamado de serialização.
Leitura e despejo de dados JSON em Python
Os dados JSON podem ser recuperados como uma resposta de um servidor, lidos do arquivo, separados dos parâmetros de consulta de URL e assim por diante. Este artigo se concentrará principalmente na leitura de dados json de um arquivo armazenado localmente. Vamos supor que um “teste.O arquivo json ”contém os seguintes dados:
"codinome": "Eoan Ermine", "versão": "Ubuntu 19.10 "Para ler o teste.arquivo json em python, você pode usar o código abaixo:
import jsoncom aberto ("teste.json ") como f:
data = json.carga (f)
dump = json.despejos (dados)
imprimir (dados)
imprimir (tipo (dados))
imprimir (despejar)
imprimir (tipo (despejar))
A primeira linha no código acima importa o módulo json. Na próxima linha, “with open” é usado para ler com segurança o conteúdo do arquivo. Dentro do bloco “com aberto”, “json.método load ”é usado para ler e armazenar o conteúdo do arquivo na variável“ data ”. Os dados carregados na etapa anterior são convertidos de volta em string json usando o método “json.método de despejo. Executar o código acima mostrará a seguinte saída:
'codinome': 'Eoan Ermine', 'versão': 'Ubuntu 19.10 '"codinome": "Eoan Ermine", "versão": "Ubuntu 19.10 "
Observe na saída acima que o “json.load ”método lê dados json brutos em um dicionário python enquanto“ json.métodos dumps ”converte um dicionário em uma string que é compatível com a estrutura JSON. Depois que um objeto JSON foi convertido em um objeto de dicionário Python, você pode usar métodos de dicionário Python integrados para lidar com os dados. O exemplo acima é bastante básico e não inclui matrizes em dados JSON ou valores aninhados. No entanto, dentro do python, você pode lidar com esses valores como quaisquer outros dicionários e listas aninhados.
Classificação e impressão bonita de dados JSON
O “json.método dump ”suporta alguns parâmetros opcionais para classificar as chaves e imprimir a saída para facilitar a leitura.
import jsoncom aberto ("teste.json ") como f:
data = json.carga (f)
dump = json.despejos (dados, sort_keys = True, indent = 4)
imprimir (despejar)
O código acima mostrará a seguinte saída:
"codinome": "Eoan Ermine",
"versão": "Ubuntu 19.10 "
Conversões de tipo de dados
A lista abaixo ilustra como os valores JSON são convertidos em objetos Python e vice-versa.
JSON | Pitão |
fragmento | str |
número | int ou float |
verdadeiro falso | Verdadeiro falso |
nulo | Nenhum |
variedade | Lista |
objeto | dict |
Json.ferramenta Módulo de linha de comando
Python inclui um bom utilitário de linha de comando “json.ferramenta ”que pode ser usada para validar e imprimir strings JSON e arquivos.
$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.ferramentaExecutar o comando acima mostrará a seguinte saída:
"codinome": "Eoan Ermine",
"versão": "Ubuntu 19.10 "
Você também pode usar json.ferramenta com arquivos JSON. Substitua “in_file” e “out_file” no comando abaixo com os valores desejados:
$ python3 -m json.ferramenta in_file out_fileAlém de impressão bonita, classificação e validação de dados JSON, json.ferramenta não faz mais nada. Então, se você deseja manipular quaisquer dados JSON, você deve escrever seu próprio código personalizado usando o módulo JSON integrado.