JSON Flattener
ネストされたJSONをドット表記を使用したフラットなキーと値のペアにフラット化します。
このツールについて
JSONフラット化とは、ネストされたJSON構造を、ドット記法のキーを使用して単一レベルの表現に変換するプロセスです。API、データベース、設定ファイルから複雑なネストされたオブジェクトを扱う場合、このツールはそれらをシンプルなキー値ペアに変換し、分析、保存、またはCSVやスプレッドシートなどの形式へのエクスポートが容易になります。
JSON Flattenerを使用するには、ネストされたJSONを入力エリアに貼り付けて、フラット化ボタンをクリックします。ツールは、複数レベルのオブジェクトと配列を即座にフラット化され、親子関係がドット(例:"user.profile.email")で表現されます。その後、結果を直接コピーすることも、データパイプライン、レポートツール、またはスプレッドシートアプリケーションで使用するためにエクスポートすることもできます。
このツールは、構造化されていないAPIレスポンスを変換するデータエンジニア、複雑なオブジェクト構造をデバッグする開発者、フラット化されたスキーマを期待するBIプラットフォーム用にデータを準備するアナリストにとって非常に価値があります。JSON Flattenerは配列インデックスとカスタム区切り文字をサポートし、様々なデータ変換ワークフローに対応します。
よくある質問
コード実装
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.