← 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. s1 = "{\"nome\": \"Paulo\", \"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 chave é lembrar que json.loads() converte uma string em JSON para objetos do Python. JSON tem algumas palavras fixas: true vira True, false vira False e null vira None. Além disso, um array JSON vira lista do Python, não tupla. Ou seja, a função não “imprime texto bonito”, ela interpreta o conteúdo e transforma no tipo correspondente. No trecho, s1 representa um objeto JSON com nome e cep, então json.loads(s1) devolve um dicionário Python com essas chaves e valores. Em s2, há um array JSON, então o resultado é uma lista ['um', 'dois']. Já s3 contém true, que no Python aparece como True, e s4 contém null, que vira None. Por isso o gabarito A está correto: ele é o único que respeita a conversão real do JSON para os tipos do Python. As outras alternativas misturam conceitos de Python e JSON, como tupla no lugar de lista, true no lugar de True ou Null no lugar de None. Em concurso, essa troca de maiúsculas e minúsculas costuma ser a pegadinha clássica.

Continue treinando

Questões relacionadas