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) para objeto (JSON)
  • lista (Python) para array (JSON)
  • str (Python) para string (JSON)
  • int, float (Python) para número (JSON)
  • Verdadeiro, Falso (Python) para verdadeiro, falso (JSON)
  • Nenhum (Python) para nulo (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.