Yapısını kontrol etmek için bir CSV dosyası açın: her kaydın alan sayısı başlıkla karşılaştırılır; boş ve yinelenen sütun adları, yersiz tırnaklar, karışık satır sonları ve boş satırlar aranır. Her sütun için tam sayı, tarih, e-posta, zorunlu, benzersiz, izin verilen değerler veya düzenli ifade gibi isteğe bağlı kurallar ekleyin; her sorun veri satırı, sütunu ve değeriyle listelenir. Kurallar Frictionless Table Schema terimlerini kullanır. Dosya sunucuya yüklenmez, tarayıcınızda kontrol edilir.
CSV dosyası nasıl doğrulanır?
- Bir
.csv,.tsvveya.txtdosyası açın. Ayırıcı ile UTF-8 veya UTF-16 BOM işareti algılanır; sütunlar yanlış görünüyorsa içeri aktarma ayarlarından başka bir ayırıcı veya eski bir kodlama seçin. - İsterseniz her kaydın sahip olması gereken sütun sayısını girin. Boş bırakılırsa başlıktaki sütun sayısı kullanılır.
- İsterseniz önem verdiğiniz sütunlar için kural ekleyin: bir tür, değerin zorunlu ya da benzersiz olup olmadığı, izin verilen değerler, en küçük ve en büyük değer, uzunluk aralığı veya bir desen.
- Denetimi çalıştırın ve raporu sırayla inceleyin: önce hatalar, sonra uyarılar. Değerleri CSV düzenleyicide düzeltin veya CSV temizle ile toparlayın, ardından yeniden doğrulayın.
Kural yazmadan önce her sütunun türlerini, boş değerlerini ve farklı değerlerini görmek için dosyanın profilini CSV analiz et ile çıkarın.
Yapı denetimleri
| Alan sayısı (hata) | Bir kayıtta başlıktan ya da girdiğiniz sayıdan daha fazla veya daha az alan var. RFC 4180 her kaydın aynı sayıda alana sahip olmasını bekler; uyuşmazlık genellikle tırnak içine alınmamış bir ayırıcı ya da eksik bir değer anlamına gelir. |
|---|---|
| Boş başlık (hata) | Bir sütun adı boş ya da yalnızca boşluklardan oluşuyor. Rapor sütunun konumunu verir. |
| Yinelenen başlık (hata) | İki sütun adı, boşluklar kırpıldıktan sonra aynı. Rapor iki konumu da verir. |
| Yersiz tırnak (uyarı) | Tırnak içine alınmamış bir değerin içinde 5" screen gibi bir tırnak karakteri var. Değer yazıldığı gibi korunur; rapor dosyadaki toplam sayıyı verir. |
| Kapanış tırnağından sonra metin (uyarı) | "abc"x örneğindeki gibi, kapanış tırnağı ile sonraki ayırıcı arasında karakterler var. |
| Karışık satır sonları (uyarı) | Dosyada CRLF, LF ve CR kayıt sonları karışık kullanılmış. Rapor her türü ayrı sayar. |
| Boş satırlar (uyarı) | Kayıtlar arasında boş satırlar var. Bunlar atlanır ve rapor bunları sayar. |
| Çevreleyen boşluklar (uyarı) | Bir değerin metninden önce veya sonra boşluk var. Varsayılan olarak açıktır; yalnızca boşluktan oluşan değerler bildirilmez. |
Hiç kapanmayan, tırnak içine alınmış bir değer denetimi, başladığı kaydı belirten bir hatayla durdurur; çünkü dosyanın geri kalanı güvenilir biçimde kayıtlara ayrılamaz.
Sütun kuralları
| Tür: integer (tam sayı) | -12 veya 007 gibi, isteğe bağlı işaret ve yalnızca rakamlar. ±9.007.199.254.740.991 sınırını aşan değerler bildirilir; uzun kimlikler (ör. IBAN, vergi numarası) için desenli bir metin kuralı kullanın. |
|---|---|
| Tür: number (sayı) | 3.5, -0.25 veya 1e3 gibi, ondalık ayırıcı olarak nokta kullanan sade gösterim. Binlik ayırıcı, para birimi veya çevreleyen boşluk olamaz; 1.234,56 gibi Türkçe yazımlar bildirilir. |
| Tür: boolean (mantıksal) | Herhangi bir harf büyüklüğünde true veya false. 1, 0, yes ve no bildirilir. |
| Tür: date, datetime (tarih, tarih-saat) | YYYY-MM-DD biçiminde yazılmış gerçek bir takvim tarihi; bu yüzden 2024-02-30 bildirilir. Tarih-saat bir saat ekler (2024-03-05T09:30, isteğe bağlı saniye ve Z ya da +02:00 saat farkı). |
| Tür: biçimli string (metin) | E-posta (teslim edilebilirlik testi değil, basit bir name@domain.tld biçim kontrolü), URI (şeması olan mutlak bir URL) veya UUID (sürüm 1–8). |
| Zorunlu | Değer boş olmamalıdır. Bu kural yoksa boş değerler diğer tüm kurallardan geçer. |
| Benzersiz | Sütunda hiçbir değer tekrarlanamaz. Rapor, değerin ilk göründüğü satırı belirtir. Boş değerler karşılaştırılmaz. |
| İzin verilen değerler | Değer, harf büyüklüğü ve boşluklar dahil, listelenen değerlerden birine tam olarak eşit olmalıdır. |
| En küçük, en büyük | Tam sayı ve sayı sütunları için ya da tarih ve tarih-saat sütunları için ISO tarihleriyle sınırlar; sınırlar dahildir. |
| En küçük ve en büyük uzunluk | Unicode karakteri olarak sayılır; é ve 日 birer karakterdir (ş, ğ, İ gibi Türkçe harfler de). |
| Desen | Table Schema’nın gerektirdiği gibi değerin tamamıyla eşleşmesi gereken bir düzenli ifade; örneğin [A-Z]{2}\d{4}. Eşleşme büyük/küçük harfe duyarlıdır. |
Bir kural, başlığı kuralın adıyla birebir eşleşen sütuna uygulanır; dosyada bulunmayan sütunlara ait kurallar atlanır. Kurallar bir Table Schema JSON dosyası olarak kaydedilip sonraki dışa aktarım için yeniden yüklenebilir; yüklenen şemadaki bilinmeyen türler ve anahtarlar yok sayılır.
Raporu okumak
- Satır numaraları başlıktan sonraki veri kayıtlarını sayar (başlık 0. satırdır). Tırnak içinde satır sonu bulunan bir değer yine tek kayıttır; bu yüzden satır numarası bir metin düzenleyicideki satır numarasından farklı olabilir.
- Her sorun kendi sütununu belirtir ve değeri aktarır; böylece onu CSV görüntüleyicide veya düzenleyicide arayabilirsiniz.
- Hatalar yapıyı veya bir kuralı bozar; uyarılar ise geçerli CSV olan ama sık sık içeri aktarma sorunlarına yol açan verileri gösterir.
- En fazla 5.000 sorun listelenir. Bunun ötesinde her sorun türünün toplamı sayılmaya devam eder ve liste kısaltılmış olarak işaretlenir.
Sınırlar ve gizlilik
Doğrulayıcı kayıtları birer birer okur; bu yüzden 25 MB’lık etkileşimli sınırı aşan dosyalar arka plandaki bir işçide, ilerleme göstergesi ve iptal seçeneğiyle akış modunda kontrol edilir. Akış modunda başlıktan daha az alan içeren kayıtlar şu an denetimden önce tamamlanır; bu yüzden alan sayısı hatası olarak yalnızca fazladan alan içeren kayıtlar bildirilir.
Doğrulama tarayıcınızda çalışır. CSV dosyası bir sunucuya yüklenmez.
Örnek
Dört kuralla kontrol edilen bir üyelik dışa aktarımı: id zorunlu ve benzersiz bir tam sayı; email e-posta biçiminde zorunlu bir metin; signup_date bir tarih; plan için basic, pro ve team değerlerine izin veriliyor. Çıktı, doğrulayıcının raporudur; özetten sonra her satırda bir sorun yer alır: olanaksız bir tarih, alan adı uzantısı olmayan bir e-posta, yanlış harf büyüklüğüyle yazılmış Pro, tekrarlanan bir id, eksik bir e-posta ve sonunda boşluk olan team ; bu sonuncusu hem bir uyarıdır hem de izin verilen bir değer değildir.
id,email,signup_date,plan 1,ana@example.com,2024-02-30,pro 2,kim@example,2024-03-01,Pro 2,bao@example.com,2024-03-04,basic 4,,2024-03-05,team
{"rows":4,"errors":6,"warnings":1,"truncated":false}
{"code":"type","row":1,"column":"signup_date","value":"2024-02-30","params":{"type":"date"}}
{"code":"format","row":2,"column":"email","value":"kim@example","params":{"format":"email"}}
{"code":"enum","row":2,"column":"plan","value":"Pro","params":{"allowed":"basic, pro, team"}}
{"code":"unique","row":3,"column":"id","value":"2","params":{"first":2}}
{"code":"whitespace","row":4,"column":"plan","value":"team ","params":{}}
{"code":"required","row":4,"column":"email","value":"","params":{}}
{"code":"enum","row":4,"column":"plan","value":"team ","params":{"allowed":"basic, pro, team"}}Sık sorulan sorular
Boşluk içeren bir değer neden izin verilen değerler listesine takılıyor?
Kurallar değeri kırpmadan, tam yazıldığı gibi karşılaştırır; bu yüzden team , team ile aynı değildir. Sütunu CSV temizle ile kırpın veya dışa aktarımı düzeltin.
Doğrulama dosyamı değiştirir mi?
Hayır. Dosyayı yalnızca okur ve bulduklarını bildirir. Sorunları düzenleyicide veya kaynak sistemde düzeltin.
Aynı kuralları her aylık dışa aktarımda yeniden kullanabilir miyim?
Evet. Kuralları bir Table Schema JSON dosyası olarak kaydedin ve bir sonraki sefer yükleyin; kurallar sütunlarla adlarına göre eşleştirilir.