Arquivos JSON em Python
No mundo da programação em Python, frequentemente nos deparamos com vários formatos de dados ao lidarmos com tarefas cotidianas como web scraping ou integração de API. Para quem trabalha com dados estruturados, arquivos CSV e documentos XML fazem parte da rotina. No entanto, lidar com arquivos JSON (JavaScript Object Notation) é também uma atividade frequente.
JSON é um formato de arquivo muito popular usado para armazenar e transmitir dados. Sua popularidade se deve ao seu formato leve de intercâmbio de dados que é fácil de ler e escrever por humanos e máquinas.
Neste post, exploraremos como o Python interage com o JSON usando a biblioteca json integrada. Para usá-la, basta importá-la no início de um código Python:
import json
Como a biblioteca json é integrada, ela não requer instalação.
O que é um arquivo JSON?
O termo JSON significa JavaScript Object Notation. JSON são arquivos de texto. Ou seja, um arquivo JSON é apenas um objeto formatado em string simples.
Como o JavaScript é uma linguagem de programação muito popular, especialmente para aplicações web, não é surpresa que os arquivos JSON tenham sido adotados quase como formato universal para troca de dados.
Acesse conteúdos JSON em Python
Para acessar um conteúdo JSON com Python, usamos o comando json.loads():
import json
# exemplo de json
meu_json = '{ "nome":"Ana", "idade":32, "cidade":"Barueri"}'
meu_dic = json.loads(meu_json)
print(meu_dic)
# resultado: {'nome': 'Ana', 'idade': 32, 'cidade': 'Barueri'}
Para abrir um arquivo JSON, basta usar o comando open() em modo de leitura (r) do Python com o comando json.load():
import json
with open("meu_arquivo.json", "r") as arquivo:
dados = json.load(arquivo)
Nos exemplos acima, note que usamos 2 comandos diferentes: json.loads() e json.load(). O primeiro, json.loads() deve ser usado para ler JSON a partir de strings. O segundo, json.load(), acessa conteúdo JSON de arquivos.
Converte de Python para JSON
Você pode converter objetos Python em uma string JSON usando o método json.dumps():
meu_dic_python = {
"nome":"Ana", "idade":32, "cidade":"Barueri"
}
meu_obj_json = json.dumps(meu_dic_python)
Vários formatos de objetos são convertíveis em JSON, incluindo dicionários, listas, tuplas, strings, int, float, variáveis booleanas (True e False) e None:
import json
json.dumps({"nome": "Ana", "idade": 30}) # converte dicionário
json.dumps(["abacaxi", "bananas"]) # converte lista
json.dumps(("abacaxi", "bananas")) # converte tupla
json.dumps("Oi") # converte string
json.dumps(42) # converte int
json.dumps(31.76) # converte float
json.dumps(True) # converte bool
json.dumps(None) # converte None
Formatação de arquivos JSON
import json
print(json.dumps({"nome": "Ana", "idade": 30, "cidade": "Araraquara"}, indent=4))
# resultados:
# {
# "nome": "Ana",
# "idade": 30,
# "cidade": "Araraquara"
# }
import json
print(json.dumps({"nome": "Ana", "idade": 30, "cidade": "Araraquara"}, indent=4, separators=(". ", " = ")))
# resultados:
# {
# "nome" = "Ana".
# "idade" = 30.
# "cidade" = "Araraquara"
# }
Salvamento de arquivos JSON
Para salvar um arquivo JSON com Python, você pode usar o comando open() em modo w (write):
dados = {"nome": "Ana", "idade": 30}
with open("meu_arquivo.json", "w") as arquivo:
json.dump(dados, arquivo)