Konverter CSV ke YAML

YAML merupakan format dasar dari berbagai file konfigurasi modern, seperti manifest Kubernetes, alur kerja GitHub Actions, Docker Compose, playbook Ansible, dan fixture Rails. Konverter ini membaca file berformat CSV dan menghasilkan urutan kode YAML, di mana setiap baris menjadi pemetaan dengan kunci dari baris tajuk. Hasil keluarannya menggunakan indentasi dua spasi dan ambang batas inline empat tingkat, yang sesuai dengan gaya sebagian besar editor dan linter.

Bagaimana format CSV diubah menjadi YAML

  1. 1

    Lampirkan file CSV

    Sebuah sampel telah dimuat terlebih dahulu agar Anda dapat melihat bentuk keluaran bawaan; ganti dengan data Anda.

  2. 2

    Pilih pemisah

    Koma digunakan secara default. Masukkan `\t` untuk data yang dipisahkan oleh tab, atau karakter tunggal lainnya yang digunakan dalam berkas Anda.

  3. 3

    Baris tajuk menjadi kunci

    Baris ke-1 dianggap sebagai baris tajuk. Baris data menjadi pemetaan di bawah kunci-kunci tersebut dalam urutan yang sama dengan kolom sumber.

  4. 4

    YAML telah diekspor dengan aman

    Hasilnya ditampilkan oleh komponen Symfony YAML, yang memberikan kutipan terhadap nilai-nilai ketika muncul ambiguitas terkait nilai boolean, angka, atau tanggal.

Hal-hal unik tentang YAML yang perlu Anda ketahui sebelum menempelkan hasilnya

Secara permukaan, YAML terkenal sangat lunak, namun di baliknya penuh dengan perangkap. Alat pengumpul data (dumper) mampu menangani sebagian besar perangkap tersebut, tetapi data Anda tetap harus bertahan selama proses transfer bolak-balik.

Masalah Norwegia dan kawan-kawannya

YAML 1.1 memperlakukan nilai polos seperti no, yes, on, off, true, false, y, dan n (termasuk bentuknya yang menggunakan huruf kapital) sebagai nilai boolean. Artinya, kolom kode negara dengan nilai NO untuk Norwegia dapat secara otomatis berubah menjadi false.

Sel sumber Dikeluarkan sebagai (tanpa kutipan) Umumnya dimaksudkan sebagai
NO false Negara Norwegia
ON true Negara Bagian Ontario
123 123 Baik nomor maupun ID
0100 64 (oktal!) Kode dengan nol di awal

Alat pemindah data secara otomatis mengutip nilai-nilai yang berisiko; namun jika Anda melihat jenis data yang tidak tepat dalam hasil keluaran, gunakan parser YAML versi 1.2 di tahap selanjutnya atau tuliskan secara eksplisit nilai-nilai yang penting bagi Anda.

Pilihan Format

  • Indentasi dua ruang: Standar untuk sebagian besar editor; alat pemeriksa seperti yamllint secara default menggunakan format ini.
  • Ambang batas inline 4: Struktur yang terstruktur dalam secara mendalam akan dicetak pada satu baris di bawah tingkat ke-4; di atas tingkat tersebut, struktur tersebut akan menyebar ke beberapa baris. Atur pengaturan di bagian hilir jika Anda menginginkan blok yang lebih ketat.
  • Tidak ada pengait (anchor) maupun nama samaran (alias) yang dihasilkan. Setiap baris merupakan pemetaan baru, meskipun beberapa baris berulang.

Contoh hasil eksekusi

- name: Alice
  age: 30
- name: Bob
  age: 25

Kapan sebaiknya memilih YAML daripada JSON

  • Konfigurasi yang diedit secara manual, di mana komentar dan string multibaris sangat penting.
  • Manifest Kubernetes, pipeline CI, dan playbook Ansible.
  • Setiap konteks di mana file tersebut akan dibaca oleh manusia sama seringnya dengan oleh mesin.

Jika tidak, JSON memiliki standar yang lebih ketat dan proses pemrosesannya lebih cepat; sebaiknya digunakan untuk format data kabel serta payload yang dihasilkan secara otomatis.

Pertanyaan yang Sering Diajukan

YAML 1.1 mentafsir nilai NO dalam bentuk dasar sebagai nilai boolean. Konverter akan mengutip nilai-nilai yang berpotensi menimbulkan masalah; namun jika parser berikutnya tetap memaksa penentuan tipe data, sebaiknya kutip sel-sel yang bermasalah tersebut sebelum menempelkan hasil keluaran, atau gunakan parser YAML 1.2 yang memperlakukan nilai tersebut sebagai string biasa.

Tidak dengan konverter ini, setiap baris akan diubah menjadi pemetaan datar. Untuk format YAML yang terstruktur (nested YAML), buat skrip kecil berbasis pustaka YAML, atau konversi terlebih dahulu ke JSON lalu bentuknya menggunakan editor JSON.

Sel-sel dianalisis menggunakan str_getcsv dengan pemisah yang Anda pilih. Nilai yang dikutip mempertahankan pemisah yang terintegrasi serta menampilkan tanda kutip sebagaimana biasa pada parser CSV versi asli.

Ya. File CSV yang Anda tempel dikirim ke server kami, karena parsing dan serialisasi YAML dilakukan di sana. Data hanya digunakan untuk menghasilkan YAML dan tidak disimpan.

Alat Terkait

Alat ini tersedia dalam bahasa lain