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 é:
- A){'nome': 'Paulo', 'cep': '99999-999'} ['um', 'dois'] True None
Correta: json.loads() converte o objeto JSON em dicionário, o array em lista, true em True e null em None.
- B){'nome': 'Paulo', 'cep': '99999-999'} ('um', 'dois') true Null
Errada: array JSON não vira tupla e true/null também não permanecem como no texto original.
- C){nome: 'Paulo', cep: '99999-999'} ('um', 'dois') true None
Errada: JSON exige aspas nas chaves e o resultado de um array não é tupla; além disso, true e null foram interpretados de forma incorreta.
- D){nome: 'Paulo', cep: '99999-999'} ['um', 'dois'] True None
Errada: chaves sem aspas não são JSON válido e true/null foram substituídos por formas que não correspondem à conversão do JSON.
- E){nome: 'Paulo', cep: '99999-999'} ['um', 'dois'] true Null
Errada: repete o problema das chaves sem aspas e ainda usa true/Null de modo incompatível com a conversão feita por json.loads().
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.