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 jsonLendo 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: AliceLendo 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.