เครื่องแปลงข้อมูลจาก CSV เป็น YAML
YAML เป็นรูปแบบพื้นฐานของไฟล์กำหนดค่าสมัยใหม่ ไม่ว่าจะเป็นไฟล์ manifest ของ Kubernetes, กระบวนการทำงานของ GitHub Actions, Docker Compose, playbook ของ Ansible หรือ fixture ของ Rails เครื่องมือนี้จะอ่านข้อมูลในรูปแบบ CSV และแปลงเป็นลำดับข้อความในรูปแบบ YAML โดยแต่ละแถวจะกลายเป็นการแมปที่ใช้แถวส่วนหัวเป็นคีย์ ผลลัพธ์ที่ได้ใช้การเยื้องด้วยช่องว่างสองตำแหน่งและเกณฑ์การแสดงแบบบรรทัดเดียว (inline) ที่ระดับ 4 ซึ่งสอดคล้องกับรูปแบบของโปรแกรมแก้ไขและเครื่องมือตรวจสอบโค้ดส่วนใหญ่
วิธีที่ไฟล์ในรูปแบบ CSV ถูกแปลงเป็นรูปแบบ YAML
-
1
วางไฟล์ CSV เข้าไป
จะมีตัวอย่างถูกโหลดไว้ล่วงหน้า เพื่อให้คุณสามารถเห็นรูปทรงผลลัพธ์เริ่มต้นได้ จากนั้นให้แทนที่ด้วยข้อมูลของคุณ
-
2
เลือกตัวแบ่งข้อมูล
โดยค่าเริ่มต้นจะใช้เครื่องหมายจุลภาค ให้ป้อน `\t` เพื่อการป้อนข้อมูลที่แยกด้วยแท็บ หรือใช้ตัวอักษรเดียวใดๆ ก็ได้ตามที่ไฟล์ของคุณกำหนด
-
3
เฮดเดอร์กลายเป็นกุญแจสำคัญ
แถวที่ 1 จะถือเป็นส่วนหัว (header) ส่วนแถวข้อมูลจะถูกจัดเป็นการแมปภายใต้คีย์เหล่านั้นในลำดับเดียวกับคอลัมน์ต้นทาง
-
4
ข้อมูล YAML ถูกส่งออกไปอย่างปลอดภัย
ผลลัพธ์จะถูกสร้างขึ้นโดยคอมโพเนนต์ Symfony YAML ซึ่งจะใส่เครื่องหมายคำพูดให้กับค่าเมื่อเกิดความกำกวมกับข้อมูลประเภทบูลีน ตัวเลข หรือวันที่
ข้อควรรู้เกี่ยวกับลักษณะเฉพาะของ YAML ก่อนที่จะนำผลลัพธ์ไปวาง
YAML ขึ้นชื่อว่าดูผ่อนปรนบนพื้นผิว แต่แท้จริงแล้วเต็มไปด้วยกับดักที่ซ่อนอยู่ข้างใต้ ตัวแปลงจัดการกับกับดักเหล่านี้ได้เกือบทั้งหมด แต่ข้อมูลของคุณก็ยังต้องผ่านการแปลงไป-กลับให้รอดมาได้
ปัญหาของนอร์เวย์และผองเพื่อน
YAML เวอร์ชัน 1.1 ถือค่าของตัวแปร no, yes, on, off, true, false, y และ n (รวมถึงรูปแบบที่ใช้ตัวพิมพ์ใหญ่) เป็นค่าบูลีน ซึ่งหมายความว่า คอลัมน์รหัสประเทศที่มีค่าเป็น NO เช่น สำหรับนอร์เวย์ อาจเปลี่ยนเป็น false โดยอัตโนมัติได้
| เซลล์ต้นทาง | ผลลัพธ์ (ไม่ใส่เครื่องหมายคำพูด) | ความหมายที่ตั้งใจไว้จริง |
|---|---|---|
NO |
false |
ประเทศนอร์เวย์ |
ON |
true |
รัฐออนแทรีโอ |
123 |
123 |
ตัวเลขหรือรหัส ID |
0100 |
64 (เลขฐานแปด!) |
รหัสที่ขึ้นต้นด้วยเลขศูนย์ |
ตัวแปลงจะใส่เครื่องหมายคำพูดให้กับค่าที่เสี่ยงโดยอัตโนมัติ แต่หากคุณพบว่าผลลัพธ์แสดงชนิดข้อมูลผิดเพี้ยน ให้เปลี่ยนไปใช้ตัวแยกวิเคราะห์ (parser) แบบ YAML 1.2 ในขั้นตอนถัดไป หรือใส่เครื่องหมายคำพูดกำกับค่าที่คุณให้ความสำคัญอย่างชัดเจน
ตัวเลือกการจัดรูปแบบ
- การแทรกข้อความแบบสองช่องว่าง เป็นมาตรฐานสำหรับโปรแกรมแก้ไขส่วนใหญ่ โดยโปรแกรมตรวจค้นเช่น
yamllintจะใช้รูปแบบนี้โดยอัตโนมัติ - เกณฑ์แบบฝัง (Inline threshold) 4: โครงสร้างที่ซ้อนกันอย่างลึกจะแสดงผลบนบรรทัดเดียวในระดับที่ 4 และถ้าอยู่เหนือระดับนี้ จะขยายไปยังหลายบรรทัด หากต้องการบล็อกที่มีความเข้มงวดมากขึ้น ให้ปรับค่าตามที่เหมาะสม
- ไม่มีการสร้างแองเคอร์ (anchor) หรือแอเลียส (alias) แต่ละแถวจะเป็นการแมปใหม่เสมอ แม้แถวจะซ้ำกันก็ตาม
ตัวอย่างผลลัพธ์
- name: Alice
age: 30
- name: Bob
age: 25
เมื่อใดควรเลือก YAML แทน JSON
- ไฟล์ config ที่แก้ไขด้วยมือ ซึ่งคำอธิบายและข้อความหลายบรรทัดมีความสำคัญ
- ไฟล์ manifest ของ Kubernetes, ไปป์ไลน์ CI, และ playbook ของ Ansible
- ทุกสถานการณ์ที่ผู้คนจะอ่านไฟล์นี้พอ ๆ กับที่เครื่องจักรอ่าน
ในกรณีอื่น JSON จะมีข้อกำหนดที่เข้มงวดกว่าและใช้เวลาน้อยกว่าในการวิเคราะห์ ดังนั้นควรเลือกใช้ JSON สำหรับรูปแบบข้อมูลแบบสายสัญญาณ (wire formats) และข้อมูลที่สร้างขึ้นโดยอัตโนมัติ (generated payloads)
คำถามที่พบบ่อย
YAML 1.1 จะตีความข้อมูล NO ในรูปแบบดิบเป็นค่าบูลีน โดยเครื่องแปลงจะใส่เครื่องหมายอัญประกาศไว้สำหรับค่าที่อาจก่อให้เกิดปัญหา อย่างไรก็ตาม หากโปรแกรมวิเคราะห์ข้อมูลขั้นถัดไปยังคงกำหนดประเภทข้อมูลโดยตรง ควรใส่เครื่องหมายอัญประกาศไว้ก่อนการนำผลลัพธ์ไปใช้งาน หรือเปลี่ยนมาใช้โปรแกรมวิเคราะห์ YAML 1.2 ซึ่งจะจัดการข้อมูลเหล่านี้เป็นสตริงธรรมดา
ไม่สามารถใช้ตัวแปลงนี้ได้ เนื่องจากแต่ละแถวจะถูกแปลงเป็นข้อมูลแบบราบเรียบ สำหรับไฟล์ YAML ที่มีโครงสร้างซ้อนกัน ควรสร้างสคริปต์ขนาดเล็กโดยใช้ไลบรารี YAML หรือแปลงข้อมูลเป็น JSON ก่อน จากนั้นจึงปรับรูปแบบในโปรแกรมแก้ไข JSON
เซลล์จะถูกวิเคราะห์โดยใช้ str_getcsv โดยอิงจากตัวแบ่งบรรทัดที่คุณเลือก ค่าที่ถูกอ้างอิงจะรักษาตัวแบ่งบรรทัดที่ฝังอยู่ไว้ และแสดงเครื่องหมายคำพูดในลักษณะเดียวกับที่ใช้ในโปรแกรมวิเคราะห์ไฟล์ CSV จริง
ใช่ ข้อมูล CSV ที่คุณวางจะถูกส่งไปยังเซิร์ฟเวอร์ของเรา เนื่องจากการวิเคราะห์และการแปลงเป็นรูปแบบ YAML ดำเนินการบนเซิร์ฟเวอร์ ข้อมูลจะถูกใช้เพื่อสร้างผลลัพธ์ YAML เท่านั้น และจะไม่ถูกจัดเก็บ
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือตรวจสอบหมายเลขโทรศัพท์
ตรวจสอบโครงสร้างหมายเลขตามประเทศ พร้อมดูภูมิภาค ประเภท และรูปแบบ E.164 ระหว่างประเทศ ในประเทศ และ RFC 3966
เครื่องมือนี้มีให้บริการในภาษาอื่น
- CSV → YAML 변환기 [KO]
- Chuyển đổi từ CSV sang YAML [VI]
- CSV-naar-YAML-converter [NL]
- CSV 转 YAML 转换器 [ZH]
- CSV zu YAML Konverter [DE]
- CSV to YAML Converter [EN]
- Konverter CSV ke YAML [ID]
- CSV-till-YAML-omvandlare [SV]
- Konwerter CSV na YAML [PL]
- تحويل CSV إلى YAML [AR]
- Convertidor de CSV a YAML [ES]
- Convertisseur CSV en YAML [FR]
- Conversor de CSV para YAML [PT]
- CSV→YAMLコンバーター [JA]
- CSV'den YAML'a Dönüştürücü [TR]
- Convertitore da CSV a YAML [IT]
- Конвертер CSV в YAML [RU]