İçeriğe geç
🛠️ToolsShed

JSON Flattener

İç içe JSON'u nokta gösterimi ile düz anahtar-değer çiftlerine düzleştirin.

Bu araç hakkında

JSON düzleştirme, iç içe JSON yapısını nokta gösterimi anahtarlarını kullanarak tek düzeyli bir temsiline dönüştürme işlemidir. API'ler, veritabanları veya yapılandırma dosyalarından gelen karmaşık iç içe nesnelerle çalışırken, bu araç onları analiz etmesi, depolaması veya CSV veya elektronik tablolar gibi biçimlere aktarması daha kolay olan basit anahtar-değer çiftlerine dönüştürür.

JSON Flattener'ı kullanmak için, iç içe JSON'u giriş alanına yapıştırın ve düzleştir düğmesine tıklayın. Araç, çok düzeyli nesneleri ve dizileri anında düzleştirilmiş anahtarlara dönüştürür; burada üst-alt ilişkileri noktalarla temsil edilir—örneğin, iç içe köşeli ayraçlar yerine "user.profile.email". Ardından sonucu doğrudan kopyalayabilir veya veri ardışık düzenlerinde, raporlama araçlarında veya elektronik tablo uygulamalarında kullanmak üzere dışa aktarabilirsiniz.

Bu araç, yapılandırılmamış API yanıtlarını dönüştüren veri mühendisleri, karmaşık nesne yapılarını hata ayıklayan geliştiriciler ve düzleştirilmiş şemalar bekleyen BI platformları için veri hazırlayan analistler için çok değerlidir. JSON Flattener, dizi dizinlerini ve özel ayırıcıları destekleyerek çeşitli veri dönüştürme iş akışları için esnektir.

Sıkça Sorulan Sorular

Kod Uygulaması

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 nested

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.