Como fazer parsing de JSON em Python: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é JSON e por que fazer parsing

JSON (JavaScript Object Notation) é um formato leve de troca de dados baseado em texto, que se tornou o padrão para comunicação entre aplicações. Apesar do nome, o JSON não depende do JavaScript e é amplamente utilizado em todas as linguagens de programação modernas.

Principais vantagens do JSON:

  • Formato legível por humanos
  • Estrutura de dados simples
  • Suporte universal
  • Mais compacto que XML

Exemplo de um objeto JSON:

{
  "name": "Alice",
  "age": 30,
  "is_active": true,
  "hobbies": ["reading", "cycling", "traveling"]
}

Módulo json nativo do Python

O Python oferece um poderoso módulo nativo chamado json para trabalhar com dados JSON. Este módulo permite realizar duas operações principais:

  1. Desserialização — converter uma string JSON em objetos Python
  2. Serialização — converter objetos Python em uma string JSON

Para começar, importe o módulo:

import json

Fazendo parsing de uma string JSON para objetos Python

Usando json.loads()

A função json.loads() (load string) converte uma string JSON no objeto Python correspondente:

import json

json_data = '{"name": "Bob", "age": 25, "is_active": false}'
parsed_data = json.loads(json_data)

print(parsed_data)  # {'name': 'Bob', 'age': 25, 'is_active': False}
print(type(parsed_data))  # <class 'dict'>

Após o parsing, você pode manipular os dados como um dicionário comum:

print(parsed_data['name'])  # Bob
print(parsed_data['age'])   # 25

Mapeamento de tipos de dados

Os tipos JSON são convertidos automaticamente para tipos Python:

JSON Python
object dict
array list
string str
number int/float
true/false True/False
null None

Convertendo objetos Python para JSON

Usando json.dumps()

A função json.dumps() converte objetos Python em uma string JSON:

data = {'name': 'Alice', 'age': 30, 'is_active': True}
json_string = json.dumps(data)
print(json_string)  # {"name": "Alice", "age": 30, "is_active": true}

Parâmetros de formatação

Para melhorar a legibilidade, use parâmetros adicionais:

data = {'name': 'Alice', 'age': 30, 'city': 'São Paulo'}
json_pretty = json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False)
print(json_pretty)

Principais parâmetros:

  • indent — recuos para formatação
  • sort_keys — ordenação das chaves
  • ensure_ascii — suporte a caracteres Unicode

Trabalhando com arquivos JSON

Lendo JSON de um arquivo

Use json.load() para ler dados JSON de um arquivo:

with open('data.json', 'r', encoding='utf-8') as file:
    content = json.load(file)
    print(content)

Escrevendo JSON em um arquivo

A função json.dump() grava dados em um arquivo:

data = {'city': 'São Paulo', 'temperature': 28, 'weather': 'ensolarado'}

with open('weather.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, indent=4, ensure_ascii=False)

Recomendações para trabalhar com arquivos

  • Sempre especifique a codificação

Blogs

Book Recommendations