2025-06-05
JSON'dan CSV'ye: Veri Pipeline'ları için Pratik İpuçları
İç içe JSON'u CSV'ye düzleştirmek, iç içe diziler, null değerler ve özel karakterlerle karşılaşana kadar önemsiz görünür. İşte doğru yapmanın yolu.
JSON'dan CSV'ye Dönüşüm Neden Zordur
Düz CSV ve hiyerarşik JSON temelden farklı yapılardır. Şu durumlarda sorunlar ortaya çıkar:
- İç içe nesneler:
{ address: { city: "NY" } }—address.city'e mi düzleştirirsiniz yoksa JSON olarak mı serileştirirsiniz? - Diziler:
{ tags: ["a","b"] }— bir hücreyle 1:1 eşleştirmek imkânsızdır - Özel karakterler: Değerlerdeki virgüller ve tırnaklar basit serileştiricileri bozar
RFC 4180 Yaklaşımı
Özel karakterleri doğru şekilde ele almanın yolu RFC 4180 kaçış yöntemidir:
- Virgül, çift tırnak veya yeni satır içeren herhangi bir değeri çift tırnak içine alın
- İç çift tırnakları ikiye katlayarak kaçın:
"say ""hello"""
Dönüştürücümüz bunu birçok basit alternatifin aksine doğru şekilde uygular.
Düzleştirme Stratejisi
İç içe nesneler için, veri kaybı olmadan verileri koruyarak hücre içinde JSON dizesi olarak serileştiririz:
id,name,address
1,John,"{""city"":""NY"",""zip"":""10001""}"
pandas veya BigQuery'ye beslenen veri pipeline'ları için bu genellikle en güvenli yaklaşımdır — aşağı akış sistemi gerekirse daha fazla ayrıştırabilir.
CSV Ne Zaman Kullanılmalı
CSV şunlar için idealdir:
- Excel/Google Sheets'e aktarma
- Basit ML pipeline'larını besleme
- Teknik olmayan kullanıcılar için veri dışa aktarma
Tam yapıyı koruması gereken her şey için JSON olarak tutun. CSV, tasarım gereği kayıplı bir formattır.