Esta é uma questão prática de programação que exige a implementação de um script para processamento de texto e conversão de dados. A resolução envolve o uso de Expressões Regulares (Regex) para extração de padrões específicos de uma string e serialização dos dados para o formato JSON.
Resumo da Solução
A solução requer escrever um código (geralmente em Python) que utilize a biblioteca re para encontrar padrões de "Nome: X, Email: Y" no texto e armazenar esses pares em uma lista de dicionários, que será então salva em um arquivo .json.
Análise Detalhada
1. Entendendo o Problema
O objetivo é transformar um texto não estruturado (uma única string longa) em uma estrutura de dados organizada (JSON).
- Entrada:
"Nome: Ana, Email: ana@email.com, Nome: João, Email: joao@email.com" - Saída: Um arquivo contendo uma lista de objetos JSON.
2. Ferramenta Principal: Expressões Regulares (Regex)
Para extrair os dados corretamente, precisamos de um padrão que identifique onde começa o nome e onde termina o e-mail.
- Padrão sugerido:
r'Nome:\s(\w+), Email:\s([^@\s]+@[^@\s]+)' Nome:: Busca literalmente a palavra "Nome".\s*: Ignora espaços em branco opcionais.(\w+): Captura o nome (grupo 1). \w representa palavras/algarismos.Email:: Busca literalmente a palavra "Email".([^@\s]+@[^@\s]+): Captura o e-mail (grupo 2). Evita capturar caracteres que não pertençam ao e-mail.
3. Estrutura de Dados JSON
O JSON deve ser uma lista ([]) contendo dicionários ({}).
Cada dicionário representa uma pessoa:
[
{
"nome": "Ana",
"email": "ana@email.com"
},
...
]
4. Implementação em Python (Exemplo Prático)
Abaixo está o código que resolve a atividade proposta na imagem:
import re
import json
# Texto fornecido
texto = "Nome: Ana, Email: ana@email.com, Nome: João, Email: joao@email.com"
# Definição da Regex
# Explicação: Procura 'Nome:', pega letras até a virgula, procura 'Email:', pega até o fim ou proximo espaço
padrao = r'Nome:\s*(\w+), Email:\s*([\w@.]+)'
lista_dados = []
# Encontrar todas as ocorrências
for match in re.finditer(padrao, texto):
nome = match.group(1)
email = match.group(2)
# Criar o dicionário individual
registro = {"nome": nome, "email": email}
lista_dados.append(registro)
# Salvar no arquivo JSON
with open('dados.json', 'w', encoding='utf-8') as f:
json.dump(lista_dados, f, ensure_ascii=False, indent=4)
print("Dados extraídos e salvos com sucesso!")
Comparativo de Extração
| Etapa | Ação Realizada | Resultado Intermediário |
|---|
| Input | String crua | "Nome: Ana..." |
| Regex | finditer | Gera matches individuais |
| Processamento | Loop e Dicionário | [{"nome":"Ana"...}, ...] |
| Output | json.dump | Arquivo .json formatado |
Conclusão
A questão testa a habilidade de manipulação de strings e entendimento de formatos de troca de dados. O ponto crítico é criar a expressão regular correta que consiga separar dinamicamente o nome do e-mail sem quebrar se houver variações de espaçamento. A estrutura final deve respeitar estritamente as chaves "nome" e "email" conforme mostrado no enunciado.