
Compartilhar:
Álvaro é um ex-membro da equipe da Vonage. Ele atuou como defensor dos desenvolvedores na Vonage, com foco em APIs de rede. É apaixonado por experiência do desenvolvedor, APIs e código aberto. Fora do trabalho, é comum encontrá-lo explorando lojas de quadrinhos, participando de festivais de ficção científica e terror ou montando coisas com aqueles famosos blocinhos de plástico.
Como trabalhar com JSON em Python: um guia para iniciantes
JSON (JavaScript Object Notation) é comumente usado ao trabalhar com APIs para trocar dados entre aplicativos da web e servidores. É leve, legível por humanos e fácil de analisar.
Em Python, trabalhar com JSON é simples, graças ao módulo integrado json .
Pronto para trabalhar com JSON em Python? Vamos começar!
O que é JSON?
O JSON é um formato baseado em texto que representa dados estruturados por meio de pares chave-valor. Aqui está um exemplo simples de JSON extraído da resposta de uma de nossas APIs de rede:
{
"phoneNumber": "+99012345678",
"location": {
"latitude": 50.735851,
"longitude": 7.10066,
},
"is_active": true
}O JSON suporta vários tipos de dados:
Sequências de caracteres (por exemplo, “+99012345678”)
Numbers (por exemplo, 25, 50,7358)
Valores booleanos (verdadeiro ou falso)
Nulo (nulo)
Objetos (pares chave-valor, semelhantes aos dicionários do Python)
Matrizes (listas de valores, semelhantes às listas do Python)
Como trabalhar com JSON em Python
O Python oferece uma função embutida json na sua biblioteca padrão, permitindo que os desenvolvedores trabalhem com dados JSON. Você pode importá-lo usando:
import json Analisar dados JSON
Os dados JSON geralmente são convertidos em dicionários do Python. Para analisar e converter dados JSON representados como uma string, use json.loads()
json_data = '{"name": "Maria", "age": 25, "city": "Madrid"}' # string
parsed_data = json.loads(json_data) # Python dict
print(parsed_data["name"]) # prints “Maria”json.loads() será o método que você usará para analisar o JSON das respostas da API.
Converter objetos Python para JSON
Para converter (ou serializar) objetos Python em uma string no formato JSON, use json.dumps()
python_dict = {"name": "John", "city": "London"}
json_string = json.dumps(python_dict)
print(json_string) # prints '{"name": "John", "city": "London"}'Você também pode formatar a saída JSON com recuo para facilitar a leitura:
formatted_json = json.dumps(python_dict, indent=4)
print(formatted_json)É claro que formatos JSON inválidos gerarão uma exceção. Devemos lidar com esses erros utilizando o mecanismo normal de tratamento de exceções do Python:
try:
invalid_json = '{"name": "John", "age": 30,}' # Incorrect JSON
parsed_data = json.loads(invalid_json)
except json.JSONDecodeError as e:
print("Error decoding JSON:", e) Ler e gravar arquivos JSON
Para gravar dados JSON em um arquivo, use json.dump():
with open("data.json", "w") as file:
json.dump(python_dict, file, indent=4)Para ler dados JSON de um arquivo, use json.load():
with open("data.json", "r") as file:
data = json.load(file) # data is a Python dict
print(data) Serializar outros tipos de dados do Python para JSON
Nos exemplos anteriores, vimos como serializar dicionários do Python. No entanto, o Python permite a serialização de outros tipos de dados no formato JSON:
As listas são naturalmente suportadas na serialização JSON:
list_data = ["one", "two", "three"]
json_list = json.dumps(list_data)
print(json_list) # ["one", "two", "three"]As tuplas podem ser convertidas em listas JSON:
tuple_data = ("one", "two", "three")
json_tuple = json.dumps(tuple_data)
print(json_tuple) # ["one", "two", "three"]Os conjuntos do Python devem ser convertidos em listas antes da serialização:
set_data = {1, 2, 3, 4}
json_set = json.dumps(list(set_data))
print(json_set) # [1, 2, 3, 4]Por fim, para serializar objetos personalizados, precisamos implementar uma função codificadora personalizada:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def person_encoder(obj):
if isinstance(obj, Person):
return {"name": obj.name, "age": obj.age}
raise TypeError("Object of type Person is not JSON serializable")
person = Person("Maria", 30)
json_person = json.dumps(person, default=person_encoder)
print(json_person) # {"name": "Alice", "age": 30} Conclusão
Ao contrário de outros formatos (XML, estamos falando de você!), trabalhar com JSON em Python é simples e eficiente. Não precisamos de dependências adicionais, já que a biblioteca padrão do Python inclui o json . Dominar o JSON vai te ajudar a melhorar suas integrações de API, especialmente ao analisar respostas de API.
Tem alguma dúvida ou quer compartilhar o que está criando?
Inscreva-se no Boletim Informativo para Desenvolvedores
Siga-nos no X (antigo Twitter) para ficar por dentro das novidades
Assista aos tutoriais no nosso canal do YouTube
Conecte-se conosco na página de desenvolvedores da Vonage no LinkedIn
Fique conectado e acompanhe as últimas notícias, dicas e eventos para desenvolvedores.
Compartilhar:
Álvaro é um ex-membro da equipe da Vonage. Ele atuou como defensor dos desenvolvedores na Vonage, com foco em APIs de rede. É apaixonado por experiência do desenvolvedor, APIs e código aberto. Fora do trabalho, é comum encontrá-lo explorando lojas de quadrinhos, participando de festivais de ficção científica e terror ou montando coisas com aqueles famosos blocinhos de plástico.