Buka atau tempel file CSV, dan setiap baris menjadi satu item dalam daftar YAML, dengan kunci dari baris judul kolom. Secara bawaan setiap nilai tetap berupa teks, dan nilai yang bisa ditafsirkan lain oleh parser YAML, seperti NO, yes, 0150, 2024-03-01, atau null, diberi tanda kutip agar terbaca kembali persis seperti tertulis. File dikonversi di browser Anda dan tidak pernah diunggah.
Cara mengonversi CSV ke YAML
- Pilih Buka file, seret file
.csv,.tsv, atau.txtke alat ini, atau pilih Tempel. Periksa pemisah dan pengodean di Pengaturan impor jika kuncinya tampak salah. - Pilih Tipe nilai dan cara menulis Sel kosong. Tab YAML menampilkan teks yang persis sama dengan isi unduhan.
- Pilih Indentasi, lalu pilih Salin atau Unduh YAML.
Hasilnya berupa sequence di tingkat teratas (item - key: value), bentuk yang dipakai untuk fixture, seed data, dan file data static site. Jika Anda butuh JSON, CSV ke JSON punya opsi tipe yang sama.
Fungsi setiap opsi
| Simpan semua nilai sebagai teks | Pilihan bawaan. Setiap nilai menjadi string YAML; tanda kutip hanya ditambahkan jika skalar biasa akan terbaca sebagai hal lain. |
|---|---|
| Deteksi angka dan true/false | Sebuah kolom menjadi angka YAML hanya jika setiap nilai yang tidak kosong berupa angka biasa tanpa nol di depan dan maksimal 15 digit signifikan; kolom true/false (huruf besar/kecil apa pun) menjadi boolean. yes/no dan tanggal tetap berupa string bertanda kutip. Angka ditulis dalam bentuk kanonis, jadi 1.50 menjadi 1.5. |
| Sel kosong | null (bawaan) menulis key: null; Teks kosong "" menulis key: ""; Jangan sertakan kuncinya membuang kunci tersebut dari baris itu. |
| Indentasi | 2 spasi (bawaan) atau 4 spasi untuk kunci di bawah setiap item daftar. |
Cara nilai yang ambigu diberi tanda kutip
Hasilnya ditulis agar terbaca sama di parser YAML 1.2 maupun parser YAML 1.1 yang lebih lama seperti PyYAML, yang menganggap lebih banyak kata sebagai boolean dan angka.
- Kode negara dan kode jawaban:
NO,yes,off,y, danondiberi tanda kutip, jadi kode negara Norwegia tidak dimuat sebagaifalse. Ini juga berlaku untuk kunci ("on": x). - Angka nol di depan:
0150dan08001diberi tanda kutip; tanpa kutip, YAML 1.1 membacanya sebagai bilangan oktal atau desimal dan membuang nolnya. Hal yang sama penting untuk kode pos atau nomor pesanan yang diawali nol. - Tanggal dan angka dalam mode teks:
2019-04-01dan12diberi tanda kutip agar tidak dimuat sebagai timestamp atau bilangan bulat. - Teks yang mirip null: sel berisi
nullatau~diberi tanda kutip, jadi tetap menjadi teks yang Anda tulis dan tidak tertukar dengan sel kosong. - Baris baru di dalam nilai menjadi blok literal
|-, dan:atau#di dalam teks diberi tanda kutip. Baris panjang tidak pernah dilipat. - Judul kolom dipakai sebagai kunci persis seperti tertulis, termasuk spasi dan aksara non-Latin. Judul kolom yang kosong menjadi
Column 3dan yang berulang menjadiname (2).
Mengatasi masalah
- Kolom angka tetap bertanda kutip meskipun Deteksi angka dan true/false dipilih. Setidaknya ada satu nilai yang bukan angka biasa, misalnya
1,5,12 kg, atau007. Temukan di penampil CSV. - Kolom ya/tidak tidak menjadi boolean. Hanya
truedanfalseyang dikonversi, karenayes,no, danonhanya berarti boolean di YAML 1.1. Ganti dulu nilainya di CSV dengan Editor CSV jika Anda memerlukan boolean. - Kunci berisi karakter aneh seperti é. File ini bukan UTF-8. Pilih pengodeannya di Pengaturan impor.
- Semua data ada di bawah satu kunci. Pemisahnya salah ditebak; atur di Pengaturan impor.
Batas dan privasi
File hingga 25 MB, 100.000 baris, atau 2 juta sel dibuka dengan pratinjau langsung 200 baris pertama. File yang lebih besar dikonversi dalam mode streaming: file dibaca dua kali per bagian (sekali untuk mengukur kolom dan tipenya, sekali untuk menulis), sebuah pemberitahuan menyebutkan bahwa unduhan mencakup seluruh file, dan Salin tidak tersedia. Satu file hasil dibatasi hingga 4 GB.
Konversi berjalan di worker latar belakang pada tab ini, jadi halaman tetap responsif dan Batal bisa menghentikannya. File CSV tidak pernah dikirim ke server.
Contoh
Daftar pelanggan dengan kode negara, kode pos bernol di depan, penanda yes/no, tanggal, dan sel kosong, dikonversi dengan pengaturan bawaan (semua teks, sel kosong sebagai null). Dengan Deteksi angka dan true/false, hanya orders yang berubah, menjadi 12, 3, dan 7.
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"
Tanya jawab
Mengapa `NO` diberi tanda kutip?
Di YAML 1.1, NO, no, off, dan n tanpa kutip berarti false. Tanda kutip menjaga kode negara Norwegia, atau jawaban apa pun yang ditulis no, tetap berupa teks di semua parser.
Bisakah hasilnya berupa satu mapping dengan kunci ID, bukan daftar?
Tidak. Setiap baris CSV ditulis sebagai satu item daftar, sesuai urutan file. Hasil berkunci tidak tersedia di sini.
Apakah hasilnya YAML 1.2 yang valid?
Ya. Tanda kutip tambahan yang diperlukan untuk YAML 1.1 tetap valid di YAML 1.2; tanda kutip itu hanya menegaskan nilai yang memang sudah berupa string.