
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.
Have a question or want to share what you're building?
Subscribe to the Developer Newsletter
Follow us on X (formerly Twitter) for updates
Watch tutorials on our YouTube channel
Connect with us on the Vonage Developer page on LinkedIn
Stay connected and keep up with the latest developer news, tips, and events.
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.