JSON Flattener
Achate JSON aninhado em pares chave-valor planos com notação de ponto.
Sobre esta ferramenta
O achatamento de JSON é o processo de converter uma estrutura JSON aninhada em uma representação de nível único usando chaves com notação de ponto. Ao trabalhar com objetos aninhados complexos de APIs, bancos de dados ou arquivos de configuração, esta ferramenta os transforma em pares chave-valor simples que são mais fáceis de analisar, armazenar ou exportar para formatos como CSV ou planilhas.
Para usar o JSON Flattener, basta colar o JSON aninhado na área de entrada e clicar no botão de achatar. A ferramenta converte instantaneamente objetos multinível e arrays em chaves achatadas onde as relações pai-filho são representadas por pontos, por exemplo, "user.profile.email" em vez de chaves aninhadas. Você pode então copiar o resultado diretamente ou exportá-lo para uso em pipelines de dados, ferramentas de relatório ou aplicativos de planilha.
Esta ferramenta é inestimável para engenheiros de dados que transformam respostas de API não estruturadas, desenvolvedores que depuram estruturas de objetos complexas e analistas que preparam dados para plataformas de BI que esperam esquemas achatados. O JSON Flattener respeita índices de array e separadores personalizados, tornando-o flexível para vários fluxos de trabalho de transformação de dados.
Perguntas Frequentes
Implementação de Código
def flatten(obj, prefix="", sep="."):
"""Flatten a nested dict into dot-notation keys."""
result = {}
if isinstance(obj, dict):
for key, value in obj.items():
new_key = f"{prefix}{sep}{key}" if prefix else key
if isinstance(value, (dict, list)):
result.update(flatten(value, new_key, sep))
else:
result[new_key] = value
elif isinstance(obj, list):
for i, value in enumerate(obj):
new_key = f"{prefix}{sep}{i}" if prefix else str(i)
if isinstance(value, (dict, list)):
result.update(flatten(value, new_key, sep))
else:
result[new_key] = value
else:
result[prefix] = obj
return result
def unflatten(flat, sep="."):
"""Reconstruct nested dict from dot-notation keys."""
result = {}
for key, value in flat.items():
parts = key.split(sep)
d = result
for part in parts[:-1]:
d = d.setdefault(part, {})
d[parts[-1]] = value
return result
# Example
nested = {"user": {"name": "Alice", "address": {"city": "Seoul"}}}
flat = flatten(nested)
print(flat) # {'user.name': 'Alice', 'user.address.city': 'Seoul'}
print(unflatten(flat)) # back to nestedComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.