Langsung ke alat
ViewCSV
File tidak diunggah

Konversi CSV ke YAML

orders.csv· DATA CONTOH15 baris · 8 kolom
Tipe nilai
Nilai teks yang mirip angka, true/false, atau tanggal diberi tanda kutip, agar terbaca kembali sebagai teks yang sama.
- order_id: "001041"
  customer: Budi Lestari
  city: Jakarta
  product: Desk lamp
  quantity: "1"
  unit_price: "204.83"
  order_date: "2026-01-19"
  status: shipped
- order_id: "001042"
  customer: Andi Wijaya
  city: Bandung
  product: Desk lamp
  quantity: "1"
  unit_price: "139.94"
  order_date: "2026-02-26"
  status: refunded
- order_id: "001043"
  customer: Siti Saputra
  city: Medan
  product: Chair, ergonomic
  quantity: "3"
  unit_price: "128.52"
  order_date: "2026-03-01"
  status: pending
- order_id: "001044"
  customer: Rizky Kurniawan
  city: Medan
  product: Coffee beans 1kg
  quantity: "4"
  unit_price: "229.71"
  order_date: "2026-04-27"
  status: refunded
- order_id: "001045"
  customer: Rizky Lestari
  city: Jakarta
  product: Monitor 27"
  quantity: "8"
  unit_price: null
  order_date: "2026-05-09"
  status: pending
- order_id: "001046"
  customer: Fajar Gunawan
  city: Bandung
  product: Monitor 27"
  quantity: "4"
  unit_price: "221.25"
  order_date: "2026-06-20"
  status: refunded
- order_id: "001047"
  customer: " Fajar Saputra "
  city: Yogyakarta
  product: USB-C cable
  quantity: "3"
  unit_price: "22.40"
  order_date: "2026-07-04"
  status: refunded
- order_id: "001048"
  customer: Rizky Wijaya
  city: Bandung
  product: Monitor 27"
  quantity: "2"
  unit_price: "157.07"
  order_date: "2026-08-11"
  status: refunded
- order_id: "001049"
  customer: Andi Lestari
  city: Yogyakarta
  product: Coffee beans 1kg
  quantity: "2"
  unit_price: "219.18"
  order_date: "2026-09-10"
  status: shipped
- order_id: "001050"
  customer: Nur Halim
  city: Medan
  product: USB-C cable
  quantity: "1"
  unit_price: "210.97"
  order_date: "2026-01-15"
  status: refunded
- order_id: "001051"
  customer: Putri Halim
  city: Medan
  product: USB-C cable
  quantity: "8"
  unit_price: "136.07"
  order_date: "2026-02-25"
  status: shipped
- order_id: "001052"
  customer: Rizky Hidayat
  city: Denpasar
  product: Desk lamp
  quantity: "3"
  unit_price: "9.42"
  order_date: "2026-03-05"
  status: refunded
- order_id: "001053"
  customer: Budi Kurniawan
  city: Bandung
  product: Notebook A5
  quantity: "5"
  unit_price: "174.88"
  order_date: "2026-04-25"
  status: pending
- order_id: "001054"
  customer: Putri Kurniawan
  city: Bandung
  product: Desk lamp
  quantity: "2"
  unit_price: "103.84"
  order_date: "2026-05-15"
  status: paid
- order_id: "001043"
  customer: Siti Saputra
  city: Medan
  product: Chair, ergonomic
  quantity: "3"
  unit_price: "128.52"
  order_date: "2026-03-01"
  status: pending

15 baris · 1 file

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

  1. Pilih Buka file, seret file .csv, .tsv, atau .txt ke alat ini, atau pilih Tempel. Periksa pemisah dan pengodean di Pengaturan impor jika kuncinya tampak salah.
  2. Pilih Tipe nilai dan cara menulis Sel kosong. Tab YAML menampilkan teks yang persis sama dengan isi unduhan.
  3. 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 teksPilihan bawaan. Setiap nilai menjadi string YAML; tanda kutip hanya ditambahkan jika skalar biasa akan terbaca sebagai hal lain.
Deteksi angka dan true/falseSebuah 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 kosongnull (bawaan) menulis key: null; Teks kosong "" menulis key: ""; Jangan sertakan kuncinya membuang kunci tersebut dari baris itu.
Indentasi2 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, dan on diberi tanda kutip, jadi kode negara Norwegia tidak dimuat sebagai false. Ini juga berlaku untuk kunci ("on": x).
  • Angka nol di depan: 0150 dan 08001 diberi 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-01 dan 12 diberi tanda kutip agar tidak dimuat sebagai timestamp atau bilangan bulat.
  • Teks yang mirip null: sel berisi null atau ~ 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 3 dan yang berulang menjadi name (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, atau 007. Temukan di penampil CSV.
  • Kolom ya/tidak tidak menjadi boolean. Hanya true dan false yang dikonversi, karena yes, no, dan on hanya 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.

CSV
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
YAML
- 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.

Standar dan referensi