Questão nº 42

Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 42)

FGV2022Analista Judiciário - Análise de SistemasAnálise de Sistemas
Gabarito: Aver comentário ↓

No contexto do Python 3.9, analise o trecho a seguir.

```python
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 é:

Resposta comentada

Gabarito Alternativa A

Conceito-chave: json.loads() converte uma string em formato JSON para o tipo correspondente do Python: objetos {} viram dict, arrays [] viram list, true/false viram True/False e null vira None. O \ escapa as aspas internas da string, então s1 é uma string válida contendo {"nome": "Paulo", "cep": "99999-999"}.

  • (A) Correta: É o gabarito. json.loads(s1) retorna {'nome': 'Paulo', 'cep': '99999-999'} (dict), json.loads(s2) retorna ['um', 'dois'] (list), json.loads(s3) retorna True (bool) e json.loads(s4) retorna None (NoneType).
  • (B) Incorreta: Erra ao trocar list por tuple (('um', 'dois')) e ao manter true/Null como strings, mas json.loads converte para True e None.
  • (C) Incorreta: Erra ao mostrar {nome: 'Paulo', cep: '99999-999'} sem aspas nas chaves (dict exige aspas) e ao usar tuple e true (string), quando o correto é list e True.
  • (D) Incorreta: Erra ao omitir as aspas nas chaves do dict ({nome: ...}), pois json.loads sempre gera chaves como strings, exibidas com aspas simples.
  • (E) Incorreta: Erra ao omitir aspas nas chaves, manter true como string (deveria ser True) e Null (deveria ser None).

Armadilha da banca (no distrator mais tentador, B): A pegadinha está em confundir json.loads com eval ou com a sintaxe de tuple. Muitos alunos acham que arrays JSON [...] viram tuplas, mas json.loads sempre retorna list para arrays. Além disso, a banca usa true/null minúsculos (válidos em JSON) para tentar fazer você acreditar que eles permanecem como strings, mas o Python os converte para True e None.

Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho