Análise Python JSON: serialização e desserialização
Aprenda como ler, escrever e analisar dados JSON em Python. Domine json.loads, json.dumps e personalize codificadores/decodificadores JSON.
Visão geral
JSON (JavaScript Object Notation) é o formato leve de intercâmbio de dados que domina APIs da web modernas, configurações e cargas de banco de dados. Como as estruturas JSON se assemelham a dicionários e listas Python, a tradução entre elas é incrivelmente simples. Python vem equipado com um módulo `json` integrado, facilitando a análise de strings JSON em objetos Python e a conversão de objetos Python de volta em strings JSON.
O processo de tradução de um objeto Python (como um dicionário) em uma string JSON bruta é chamado de serialização ou codificação. Isso é tratado por `json.dumps()` (para strings) e `json.dump()` (para escrever diretamente em um arquivo). Você pode controlar parâmetros de formatação como `indent` para embelezar o JSON ou `sort_keys` para manter os atributos ordenados em ordem alfabética. Por outro lado, analisar uma string JSON em um dicionário Python é chamado de desserialização, executada via `json.loads()` e `json.load()`.
Embora os tipos padrão do Python, como strings, números, listas e dictos, sejam serializados para JSON automaticamente, os objetos personalizados (como classes ou objetos de data e hora) não. A tentativa de codificar um objeto personalizado diretamente gerará um `TypeError`. Para superar isso, os desenvolvedores devem criar uma classe de codificador personalizada que herda de `json.JSONEncoder` e substituir o método `.default()` para serializar classes em dicionários legíveis. Dominar a manipulação de JSON é fundamental para a comunicação com serviços da Web externos.
Saída de código e execução
Converter um dicionário em uma string JSON e analisá-lo novamente usando a biblioteca json integrada.
import json
# Python Dictionary representing a user profile
user_profile = {
"name": "Alex",
"is_premium": True,
"skills": ["Python", "Docker"],
"age": 28
}
# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)
# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")--- JSON String ---
{
"name": "Alex",
"is_premium": true,
"skills": [
"Python",
"Docker"
],
"age": 28
}
--- Parsed Python Dictionary ---
Name: Alex
First Skill: PythonImplementação passo a passo
- Envio de cargas e leitura de dados de APIs REST
- Armazenando preferências de configuração dentro de arquivos settings.json
- Passando cargas estruturadas entre microsserviços
Perguntas frequentes
Qual é a diferença entre json.dump e json.dumps?
json.dump (sem o 's') grava dados JSON diretamente em um fluxo de arquivo. json.dumps (com o 's') serializa dados em uma variável de string Python.
Como você lida com erros de decodificação JSON?
Envolva seu código de análise em um bloco try/except que captura 'json.JSONDecodeError' para lidar normalmente com strings JSON malformadas.
Tópicos Relacionados
Dicionários Master Python. Aprenda a armazenar, buscar e manipular dados de pares de valores-chave. Entenda o desempenho e as práticas recomendadas para mapeamentos.
E/S de arquivo PythonAprenda a ler e escrever arquivos em Python. Domine open(), read(), write() e gerenciadores de contexto para lidar com operações de arquivo com segurança sem vazamentos de recursos.
Python CSVAprenda como lidar com dados CSV em Python. Domine csv.reader, csv.writer e DictReader/DictWriter para análise eficiente de tabelas.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Como ler e analisar um arquivo JSON em Python
Aprenda como ler, analisar e carregar arquivos JSON em Python usando o módulo json integrado. Domine a conversão de strings JSON em dicionários e vice-versa.
Folha de dicas dos métodos de string Python
Um guia de referência completo para manipulação de strings em Python. Domine a formatação, pesquisa, divisão, substituição e verificação de propriedades de string.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.