← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

No contexto do Python 3.9, analise o trecho a seguir. import json s1 = "{\"nome\": \"Ciro\", \"cep\": \"99999-999\"}" s2 = "[\"um\", \"dois\"]" s3 = "true" s4 = "null" print(json.loads(s1)) print(json.loads(s2)) print(json.loads(s3)) print(json.loads(s4)) Dado que “\” funciona como escape character, o resultado exibido pela execução desse trecho é:

Gabarito: A

Aqui a ideia central é lembrar que json.loads() pega uma string em formato JSON e converte para o tipo correspondente em Python. Ou seja: um objeto JSON vira dict, um array JSON vira list, o valor true vira True e null vira None. Em Python, os nomes mudam mesmo: JSON usa true/false/null, enquanto Python usa True/False/None. Pequeno detalhe, grande pegadinha de prova. No trecho, s1 representa um objeto JSON com as chaves "nome" e "cep", então o print mostra um dicionário Python. s2 representa um array JSON, então o resultado é uma lista com "um" e "dois". Já s3 contém true, que no JSON é convertido para o booleano True do Python. Por fim, s4 contém null, que vira None. Perceba que o caractere de escape \ serve para permitir aspas duplas dentro da string Python, mas isso não altera a regra do JSON em si. Ele só ajuda a montar corretamente o texto que será interpretado por json.loads(). É por isso que a alternativa A está certa: ela apresenta exatamente as conversões esperadas entre JSON e Python. Em concurso, a banca gosta de cobrar essa troca de nomenclatura entre os dois mundos. Se você memorizar a equivalência JSON -> Python, mata a questão sem drama: objeto -> dict, array -> list, true -> True, null -> None.

Continue treinando

Questões relacionadas