https://a.storyblok.com/f/270183/1368x665/5a86bfc7c5/25mar_dev-blog_json-python.jpg

Como trabalhar com JSON em Python: um guia para iniciantes

Publicado em March 18, 2025

Tempo de leitura: 2 minutos

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.

Have a question or want to share what you're building?

Stay connected and keep up with the latest developer news, tips, and events.

Compartilhar:

https://a.storyblok.com/f/270183/405x400/2b811a162d/alvaro-navarro.jpg
Alvaro NavarroEx-funcionários da Vonage

Á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.