JSON Flattener
Aplatir JSON imbriqué en paires clé-valeur plates avec notation pointée.
À propos de cet outil
L'aplatissement de JSON est le processus de conversion d'une structure JSON imbriquée en une représentation à un seul niveau utilisant des clés avec notation pointée. Lorsque vous travaillez avec des objets imbriqués complexes provenant d'API, de bases de données ou de fichiers de configuration, cet outil les transforme en simples paires clé-valeur qui sont plus faciles à analyser, stocker ou exporter vers des formats comme CSV ou feuilles de calcul.
Pour utiliser JSON Flattener, collez simplement le JSON imbriqué dans la zone d'entrée et cliquez sur le bouton d'aplatissement. L'outil convertit instantanément les objets multiniveaux et les tableaux en clés aplaties où les relations parent-enfant sont représentées par des points, par exemple « user.profile.email » au lieu d'accolades imbriquées. Vous pouvez ensuite copier le résultat directement ou l'exporter pour une utilisation dans des pipelines de données, des outils de rapport ou des applications de feuilles de calcul.
Cet outil est inestimable pour les ingénieurs de données transformant des réponses d'API non structurées, les développeurs déboguant des structures d'objets complexes, et les analystes préparant des données pour des plates-formes de BI qui attendent des schémas aplatis. JSON Flattener respecte les indices de tableaux et les séparateurs personnalisés, ce qui le rend flexible pour divers flux de travail de transformation de données.
Questions Fréquentes
Implémentation du Code
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.