Como ler e escrever arquivos JSON no Python

Como ler e escrever arquivos JSON no Python
Este artigo explicará como lidar com arquivos e dados JSON na linguagem de programação Python. O Python vem com um módulo “JSON” embutido que facilita o manuseio de dados JSON.

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 utilizado, geralmente 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 escrever dados JSON por padrão e JSON é um formato de dados agnósticos de linguagem de programação. Os valores armazenados em um arquivo ou carga útil JSON geralmente contêm strings, números e tipos de dados serializáveis, como listas (matrizes).

Dicionários JSON e Python

Os dados JSON no Python são convertidos em um objeto de dicionário usando o método "Load". Observa -se frequentemente que algumas pessoas equiparam dados JSON e um dicionário python, pois a sintaxe para definir os dois é quase a mesma. No entanto, os dados JSON nada mais são do que uma sequência 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ê deseja armazenar dados de dicionário em um arquivo de texto ou enviá-los para outro programa não-python, você precisará convertê-los primeiro em uma string de texto (bytes). Essa sequência de texto despejada / convertida é definida na sintaxe padrão do JSON e o processo de conversão de um dicionário de python em uma string compatível com JSON é chamada de serialização.

Leitura e despejo de dados JSON em Python

Os dados JSON podem ser recuperados como uma resposta de um servidor, lido do arquivo, cortado dos parâmetros de consulta 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:

"Codename": "Eoan ermine", "versão": "Ubuntu 19.10 "

Para ler o teste.Arquivo JSON em Python, você pode usar o código abaixo:

importar json
com open ("teste.json ") como f:
dados = json.carga (f)
Dump = JSON.despejos (dados)
Impressão (dados)
Imprimir (tipo (dados))
Impressão (despejo)
Imprimir (tipo (despejo))

A primeira linha no código acima importa o módulo JSON. Na próxima linha, "com o Open" é usado para ler com segurança o conteúdo do arquivo. Dentro do bloco "com aberto", "JSON.O método de carga "é usado para ler e armazenar o conteúdo do arquivo na variável" dados ". Os dados carregados na etapa anterior são convertidos de volta na string json usando o “JSON.Método do despejo ”. A execução do código acima mostrará a seguinte saída:

'codename': 'eoan ermine', 'versão': 'ubuntu 19.10 '

"Codename": "Eoan ermine", "versão": "Ubuntu 19.10 "

Aviso na saída acima de que o “JSON.O método de carga "lê dados de JSON em um dicionário python enquanto“ JSON.Métodos de despejos ”converte um dicionário em uma string compatível com a estrutura JSON. Depois que um objeto JSON foi convertido em um objeto Python Dictionary, você pode usar métodos de dicionário Python embutidos 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 outros dicionários e listas aninhados.

Classificando e imprimindo os dados JSON

O “JSON.O método do dump ”suporta alguns parâmetros opcionais para classificar as chaves e imprimir a saída para melhorar a legibilidade.

importar json
com open ("teste.json ") como f:
dados = json.carga (f)
Dump = JSON.despejos (dados, sort_keys = true, indent = 4)
Impressão (despejo)

O código acima mostrará a seguinte saída:


"Codename": "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
corda str
número int ou flutuar
verdadeiro falso Verdadeiro falso
nulo Nenhum
variedade lista
objeto dito

JSON.Módulo de linha de comando da ferramenta

Python inclui um bom utilitário de linha de comando “JSON.ferramenta ”que pode ser usada para validar e bastante impressa strings e arquivos JSON.

$ echo '"codename": "eoan ermine", "versão": "ubuntu 19.10 " '| python3 -m json.ferramenta

Executar o comando acima mostrará a você seguinte a saída:


"Codename": "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 pelos valores desejados:

$ python3 -m json.ferramenta in_file out_file

Além de uma bela impressão, classificar e validar dados JSON, JSON.A ferramenta não faz mais nada. Portanto, se você deseja manipular qualquer dados JSON, deve escrever seu próprio código personalizado usando o módulo JSON integrado.