Datas em formato texto dentro de arquivos JSON são um problema comum que pode causar erros de processamento e análise de dados. A solução mais eficaz é converter essas strings para objetos de data nativos do seu ambiente de programação, garantindo consistência e facilitando operações como ordenação, filtragem e cálculos temporais.
O método mais confiável é usar a biblioteca datetime do Python para converter strings de data em objetos datetime. Isso permite operações temporais precisas e elimina ambiguidades de formato.
import json
from datetime import datetime
def parse_date(date_string):
# Formatos comuns de data
date_formats = [
"%Y-%m-%d",
"%d/%m/%Y",
"%m/%d/%Y",
"%Y-%m-%dT%H:%M:%S",
"%Y-%m-%dT%H:%M:%SZ"
]
for fmt in date_formats:
try:
return datetime.strptime(date_string, fmt)
except ValueError:
continue
return None
# Carregar JSON
with open('dados.json', 'r') as f:
data = json.load(f)
# Converter datas
for item in data:
if 'data' in item and isinstance(item['data'], str):
item['data'] = parse_date(item['data'])
# Salvar JSON atualizado
with open('dados_processados.json', 'w') as f:
json.dump(data, f, default=str, indent=2)
Para garantir consistência, é importante validar e normalizar todos os formatos de data para um padrão único antes de processar os dados.
def normalize_date(date_obj):
# Normalizar para formato ISO 8601
return date_obj.isoformat()
# Aplicar normalização
for item in data:
if 'data' in item and isinstance(item['data'], datetime):
item['data'] = normalize_date(item['data'])
| Entrada (JSON) | Saída (Processada) |
|---|---|
|
|
Com este método, você converte automaticamente datas em formato texto para objetos datetime, garantindo consistência e possibilitando operações temporais avançadas. O processamento é feito em segundos, eliminando erros manuais e preparando seus dados para análises precisas.