Bir CSV dosyası açın veya yapıştırın; her satır, başlıkla anahtarlanmış bir YAML liste öğesi olur. Varsayılan olarak her değer metin kalır; bir YAML ayrıştırıcısının başka bir şey olarak yorumlayacağı değerler (NO, yes, 0150, 2024-03-01, null) tırnaklanır, böylece tam yazıldıkları gibi geri yüklenir. Dosya tarayıcınızda dönüştürülür, hiçbir zaman yüklenmez.
CSV, YAML’a nasıl dönüştürülür?
- Dosya aç düğmesini seçin, araca bir
.csv,.tsvveya.txtdosyası sürükleyin ya da Yapıştır seçeneğini kullanın. Anahtarlar yanlış görünüyorsa ayırıcıyı ve kodlamayı İçeri aktarma ayarları altından kontrol edin. - Değer türleri ve Boş hücreler ayarlarını seçin. YAML sekmesi, indirilecek metnin birebir aynısını gösterir.
- Girinti seçin, ardından Kopyala veya YAML indir seçeneğini kullanın.
Sonuç, üst düzeyde bir dizidir (- key: value öğeleri); test verisi (fixture), başlangıç verisi (seed) ve statik site veri dosyalarında kullanılan yapı budur. Bunun yerine JSON gerekiyorsa CSV’den JSON’a aracında aynı tür seçenekleri bulunur.
YAML çıktı seçenekleri
| Tüm değerleri metin olarak tut | Varsayılan. Her değer bir YAML metnidir (string); tırnak yalnızca düz bir skalerin başka bir şey olarak okunacağı yerlerde eklenir. |
|---|---|
| Sayıları ve true/false değerlerini algıla | Bir sütun ancak boş olmayan her değeri baştaki sıfırı olmayan ve en fazla 15 anlamlı basamaklı sade bir sayıysa YAML sayılarına dönüşür; true/false sütunları (herhangi bir harf büyüklüğünde) mantıksal değer olur. yes/no ve tarihler tırnaklı metin olarak kalır. Sayılar kanonik biçimde yazılır; bu yüzden 1.50, 1.5 olur. |
| Boş hücreler | null (varsayılan) key: null yazar; Boş metin "" key: "" yazar; Anahtarı hiç yazma o anahtarı satırdan çıkarır. |
| Girinti | Her liste öğesinin altındaki anahtarlar için 2 boşluk (varsayılan) veya 4 boşluk. |
Belirsiz değerler nasıl tırnaklanır?
Çıktı, hem YAML 1.2 ayrıştırıcılarında hem de daha fazla sözcüğü mantıksal değer ve sayı sayan PyYAML gibi eski YAML 1.1 ayrıştırıcılarında aynı şekilde geri okunacak biçimde yazılır.
- Ülke ve cevap kodları:
NO,yes,off,yveontırnaklanır; böylece Norveç’in kodufalseolarak yüklenmez. Bu anahtarlar için de geçerlidir ("on": x). - Baştaki sıfırlar:
0150ve08001tırnaklanır; tırnaksız olduklarında YAML 1.1 bunları sekizlik veya onluk sayı olarak okur ve sıfırı atar. - Metin modunda tarihler ve sayılar:
2019-04-01ve12tırnaklanır; böylece zaman damgası veya tam sayı olarak yüklenmezler. - Null’a benzeyen metin:
nullveya~içeren bir hücre tırnaklanır; böylece yazdığınız metin olarak kalır ve boş bir hücreyle karışmaz. - Bir değerin içindeki satır sonları
|-düz blok (literal block) olur; metin içindeki:veya#tırnaklanır. Uzun satırlar hiçbir zaman katlanmaz. - Başlıklar, boşluklar ve Latin dışı yazı sistemleri dahil, yazıldıkları gibi anahtar olarak kullanılır;
sipariş_nogibi Türkçe karakterli başlıklar da değişmez. Boş bir başlıkColumn 3, yinelenen bir başlıkname (2)olur.
CSV’den YAML’a dönüştürmede sık görülen sorunlar
- Sayıları ve true/false değerlerini algıla açıkken bir sayı sütunu tırnaklı kaldı. En az bir değer sade bir sayı değil; örneğin
1,5,12 kgveya007. Bunu CSV görüntüleyicide bulun. - Evet/hayır sütunu mantıksal değere dönüşmedi. Yalnızca
truevefalsedönüştürülür; çünküyes,noveonyalnızca YAML 1.1’de mantıksal değer anlamına gelir. Mantıksal değer gerekiyorsa bunları önce CSV’de değiştirin; örneğin CSV düzenleyicideki metin değiştirme aracıyla. - Anahtarlarda ü, ç gibi tuhaf karakterler var. Dosya UTF-8 değil. İçeri aktarma ayarları altında dosyanın kodlamasını seçin (eski Türkçe Excel dosyalarında genellikle Windows-1254).
- Her şey tek bir anahtarın altında. Ayırıcı yanlış tahmin edilmiş; ayırıcıyı İçeri aktarma ayarları altından belirleyin.
Sınırlar ve gizlilik
25 MB, 100.000 satır veya 2 milyon hücreye kadar dosyalar, ilk 200 satırın canlı önizlemesiyle açılır. Daha büyük dosyalar akış modunda dönüştürülür: dosya parçalar hâlinde iki kez okunur (bir kez sütunları ve türlerini ölçmek, bir kez de yazmak için), bir bildirim indirilen dosyanın tüm dosyayı kapsadığını söyler ve Kopyala sunulmaz. Tek bir çıktı dosyası en fazla 4 GB olabilir.
Dönüştürme bu sekmede arka plandaki bir işçide çalışır; böylece sayfa yanıt vermeye devam eder ve İptal işlemi durdurur. CSV hiçbir zaman bir sunucuya gönderilmez.
Örnek: ülke kodları ve posta kodları içeren bir müşteri listesi
Ülke kodları, baştaki sıfırlı posta kodları, yes/no bayrakları, tarihler ve boş hücreler içeren bir müşteri listesi, varsayılan ayarlarla (tümü metin, boş hücreler null) dönüştürüldü. Sayıları ve true/false değerlerini algıla seçildiğinde yalnızca orders değişir ve 12, 3 ve 7 olur.
country,code,postcode,vat_registered,since,orders Norway,NO,0150,yes,2019-04-01,12 Spain,ES,08001,no,2021-11-15,3 United States,US,02134,,,7
- country: Norway code: "NO" postcode: "0150" vat_registered: "yes" since: "2019-04-01" orders: "12" - country: Spain code: ES postcode: "08001" vat_registered: "no" since: "2021-11-15" orders: "3" - country: United States code: US postcode: "02134" vat_registered: null since: null orders: "7"
Sık sorulan sorular
`NO` neden tırnak içinde?
YAML 1.1’de tırnaksız NO, no, off ve n false (yanlış) anlamına gelir. Tırnak, Norveç’in ülke kodunu ya da no olarak yazılmış her cevabı tüm ayrıştırıcılarda metin olarak tutar.
Liste yerine kimliğe göre anahtarlanmış tek bir eşleme alabilir miyim?
Hayır. Her CSV satırı, dosyadaki sırasıyla bir liste öğesi olarak yazılır. Anahtarlanmış çıktı burada sunulmuyor.
Çıktı geçerli bir YAML 1.2 mi?
Evet. YAML 1.1 için gereken ek tırnaklar YAML 1.2’de de geçerlidir; yalnızca zaten metin olan değerleri açıkça belirtir.