Ao aprender a programar em Python, é fundamental entender como trabalhar com JSON. Nesse sentido, neste artigo, você aprenderá a tratar o formato JSON utilizando o Python passo a passo, com exemplos claros e explicação detalhada dos trechos de código.
Entendendo o JSON em Python
Antes de começar a trabalhar com JSON utilizando o Python, é crucial compreender o que é JSON, sua estrutura e como ele é utilizado. JSON, que significa JavaScript Object Notation, é um formato leve e de fácil leitura para armazenar e trocar dados entre aplicativos. Ele é independente de linguagem e é usado amplamente em várias aplicações, como APIs e configurações de aplicativos.
Estrutura do JSON
JSON é um formato de dados baseado em texto que representa informações na forma de pares chave-valor. Nele, os dados são estruturados como objetos, que são coleções desordenadas de pares chave-valor, e arrays, que são listas ordenadas de valores. As chaves são sempre strings, enquanto os valores podem ser strings, números, booleanos, objetos, arrays ou um valor especial chamado null.
Aqui está um exemplo de dados:
{
"nome": "João",
"idade": 25,
"hobbies": ["futebol", "cinema", "leitura"],
"endereco": {
"rua": "Rua das Flores",
"numero": 123,
"cidade": "São Paulo"
},
"ativo": true
}
Nesse exemplo, você pode ver que os dados JSON estão estruturados como um objeto com pares chave-valor. Além disso, os dados incluem strings, números, booleanos, arrays e objetos aninhados.
Relação entre JSON e Python
Embora o JSON seja independente de linguagem, ele tem uma relação próxima com a sintaxe dos dicionários e listas Python. De fato, ao trabalhar com JSON em Python, você converterá dados JSON em dicionários e listas Python, e vice-versa.
Aqui estão algumas correspondências entre tipos de dados JSON e Python:
- Objetos JSON são convertidos em dicionários Python.
- Arrays JSON são convertidos em listas Python.
- Strings, números e booleanos JSON são convertidos em seus respectivos tipos de dados Python.
- O valor
nullJSON é convertido emNoneem Python.
Importando a biblioteca json
Para tratar JSON, primeiro você precisa importar a biblioteca json. Logo após, você poderá usar suas funções para lidar com os dados. Por exemplo:
import json
Trabalhando com JSON em Python: Leitura e Escrita
Agora que você entende o formato e já importou a biblioteca necessária, é hora de aprender a ler e escrever dados JSON.
Lendo JSON
Para ler dados JSON, você pode usar a função json.loads(). Com essa função aceita uma string JSON e a converte em um objeto Python. Por exemplo:
import json
json_string = '{"nome": "Maria", "idade": 30}'
dados = json.loads(json_string)
print(dados)
print(type(dados))
Nesse exemplo, a string JSON é convertida em um dicionário Python. Em seguida, imprimimos os dados e seu tipo. O resultado será:
{'nome': 'Maria', 'idade': 30}
<class 'dict'>
Escrevendo JSON
Para escrever dados JSON, você pode usar a função json.dumps(). Essa função aceita um objeto Python e o converte em uma string JSON. Por exemplo:
import json
dados = {'nome': 'Maria', 'idade': 30}
json_string = json.dumps(dados)
print(json_string)
print(type(json_string))
Nesse exemplo, o dicionário Python é convertido em uma string JSON. Em seguida, imprimimos a string JSON e seu tipo. O resultado será:
{"nome": "Maria", "idade": 30}
<class 'str'>
Lidando com Arquivos JSON em Python
Além de trabalhar com strings JSON, você também pode ler e escrever arquivos JSON.
Lendo arquivos JSON
Para ler arquivos JSON, use a função json.load(). Essa função aceita um objeto de arquivo e retorna um objeto Python. Por exemplo:
import json
with open('exemplo.json', 'r') as arquivo:
dados = json.load(arquivo)
print(dados)
Nesse exemplo, abrimos o arquivo ‘exemplo.json’ e lemos seus dados JSON usando a função json.load(). Em seguida, imprimimos os dados convertidos em um objeto Python.
Escrevendo arquivos JSON
Para escrever arquivos JSON, use a função json.dump(). Essa função aceita um objeto Python e um objeto de arquivo, e escreve o objeto Python como dados JSON no arquivo. Por exemplo
import json
dados = {'nome': 'Maria', 'idade': 30}
with open('exemplo.json', 'w') as arquivo:
json.dump(dados, arquivo)
Nesse exemplo, criamos um dicionário Python chamado dados e escrevemos seus valores no arquivo ‘exemplo.json’ usando a função json.dump().
Personalizando a Formatação do JSON em Python
Ao lidar com dados JSON, às vezes você pode querer personalizar a formatação. Por exemplo, você pode querer adicionar recuos para melhorar a legibilidade
Adicionando recuos ao JSON
Para adicionar recuos, use o argumento indent da função json.dumps() ou json.dump(). Por exemplo:
import json
dados = {'nome': 'Maria', 'idade': 30}
json_string = json.dumps(dados, indent=4)
print(json_string)
Nesse exemplo, a função json.dumps() converte o dicionário Python em uma string JSON com recuo de 4 espaços. Portanto o resultado será:
{
"nome": "Maria",
"idade": 30
}
Lidando com Erros ao Tratar JSON em Python
Erros acontecem durante o tratamento do JSON. E para isto é importante aprender a lidar com eles, e como contorná-los.
Tratando erros de sintaxe JSON
Erros de sintaxe podem ocorrer ao tentar ler ou escrever dados JSON malformados. Para lidar com esses erros, use um bloco try e except com a exceção json.JSONDecodeError. Por exemplo:
import json
json_string = '{"nome": "Maria", "idade": 30'
try:
dados = json.loads(json_string)
except json.JSONDecodeError as erro:
print(f"Erro de decodificação JSON: {erro}")
Nesse exemplo, está faltando uma chave de fechamento, obrigatório ao formato. Ao tentar ler essa string com a função json.loads(), ocorre um erro de decodificação JSON. Capturamos e tratamos esse erro usando a exceção json.JSONDecodeError.
Conclusão
Em suma, neste artigo, você aprendeu a tratar JSON utilizando nossa linguagem de programação favorita, de maneira simples e eficaz, com exemplos adequados para iniciantes. Você aprendeu a ler e escrever dados JSON, trabalhar com arquivos, personalizar a formatação do JSON e lidar com erros. Agora, você está pronto para usar essas habilidades em seus próprios projetos e expandir ainda mais seus conhecimentos em programação Python.


