Trabalhando com dados JSON em Python
JSON (JavaScript Object Notation) é um formato de dados leve usado para troca de dados entre um servidor e um cliente. É comumente usado em aplicativos da web para enviar e receber dados. O Python fornece um módulo integrado chamado json
que facilita o trabalho com dados JSON. Este artigo o guiará pelos conceitos básicos de trabalho com dados JSON no Python, incluindo leitura, escrita e manipulação de objetos JSON.
O que é JSON?
JSON é um formato baseado em texto que é fácil de ler e escrever para humanos e máquinas. Ele consiste em pares de chave-valor, semelhantes aos dicionários Python. Um objeto JSON típico se parece com isso:
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
Importando o módulo JSON
O módulo json
está incluso na biblioteca padrão do Python, então você não precisa instalar nada. Basta importá-lo no início do seu script:
import json
Lendo dados JSON
Você pode ler dados JSON de uma string ou de um arquivo. O método json.loads()
é usado para analisar dados JSON de uma string, enquanto json.load()
é usado para ler dados JSON de um arquivo.
Lendo JSON de uma String
Para ler JSON de uma string, use o método json.loads()
, que converte a string JSON em um dicionário Python.
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
Lendo JSON de um arquivo
Para ler dados JSON de um arquivo, use o método json.load()
. Este método lê o conteúdo de um arquivo e o converte em um dicionário Python.
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Escrevendo dados JSON
Você pode gravar dados JSON em uma string ou em um arquivo. O método json.dumps()
é usado para converter um objeto Python em uma string JSON, enquanto json.dump()
é usado para gravar dados JSON em um arquivo.
Escrevendo JSON em uma String
Para gravar JSON em uma string, use o método json.dumps()
, que converte um dicionário Python em uma string JSON.
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
Escrevendo JSON em um arquivo
Para gravar dados JSON em um arquivo, use o método json.dump()
. Esse método pega um objeto Python e grava em um arquivo no formato JSON.
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
Impressão bonita de dados JSON
O método json.dumps()
tem vários parâmetros que permitem que você formate dados JSON para melhor legibilidade. O parâmetro indent
especifica o número de espaços a serem usados para recuo, enquanto o parâmetro sort_keys
classifica as chaves na saída.
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
Convertendo entre tipos de dados JSON e Python
O módulo json
do Python pode manipular diferentes tipos de dados e convertê-los entre JSON e Python. Aqui está uma referência rápida:
dict
(Python) paraobjeto
(JSON)lista
(Python) paraarray
(JSON)str
(Python) parastring
(JSON)int
,float
(Python) paranúmero
(JSON)Verdadeiro
,Falso
(Python) paraverdadeiro
,falso
(JSON)Nenhum
(Python) paranulo
(JSON)
Lidando com erros JSON
Ao trabalhar com JSON, erros podem ocorrer devido a formatação incorreta ou dados inesperados. O módulo json
gera exceções como JSONDecodeError
quando encontra tais problemas. Use os blocos try
e except
para lidar com esses erros graciosamente.
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
Conclusão
Trabalhar com dados JSON é uma habilidade fundamental para desenvolvedores Python, especialmente em desenvolvimento web e ciência de dados. O módulo json
fornece métodos fáceis de usar para ler, escrever e manipular dados JSON. Ao dominar essas técnicas, você pode manipular dados JSON de forma eficiente em seus aplicativos Python.