ข้อมูลและสเปรดชีต · CSV สะอาดยิ่งขึ้น
CSV การตรวจจับตัวคั่นทำงานอย่างไร: เครื่องหมายจุลภาค อัฒภาค แท็บ และไปป์
· มันทำงานอย่างไร
csv การทำความสะอาดข้อมูล ไฟล์รูปแบบ
ไฟล์ CSV ไม่เคยบอกว่าอักขระใดแยกฟิลด์ของตน ดังนั้นซอฟต์แวร์จึงต้องเดา โพสต์นี้จะอธิบายวิธีการดมตัวคั่นทำงานอย่างไร เหตุใดจึงล้มเหลวในไฟล์ที่ยุ่งยาก และวิธีทำให้ตัวคั่นชัดเจน
ไฟล์ที่เปิดเป็นคอลัมน์ยาวหนึ่งคอลัมน์ — เหตุใดตัวคั่นจึงไม่ถูกจัดเก็บไว้ที่ใดใน CSV
นักวิเคราะห์ข้อมูลเปิดการส่งออก .csv และเห็นฟิลด์ยาวหนึ่งฟิลด์ในทุกบรรทัด ส่วนขยายไม่ได้บอกผู้อ่านว่าใช้ตัวคั่นใด และโดยปกติแล้วไฟล์จะไม่มีการประกาศตัวคั่น แอปพลิเคชันที่ถือว่าเครื่องหมายจุลภาคจะอ่านส่วนหัวที่คั่นด้วยเครื่องหมายอัฒภาค เช่น name;city;notes เป็นคอลัมน์เดียว ก่อนที่จะเปลี่ยนค่า ให้ถามว่าจริงๆ แล้วอักขระตัวใดที่แบ่งฟิลด์ และผู้นำเข้ามีวิธีแทนที่การคาดเดาหรือไม่
ตัวเลือกที่รองรับทั้งสี่รายการ ได้แก่ จุลภาค อัฒภาค แท็บ และไปป์
ToolAcre ถือว่าลูกน้ำ อัฒภาค แท็บ และไปป์เป็นตัวเลือก เครื่องหมายอัฒภาคเป็นเรื่องปกติเมื่อใช้เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยมอยู่แล้ว แท็บจะหลีกเลี่ยงการชนกันของเครื่องหมายวรรคตอนในการส่งออกแบบธรรมดา และบางครั้งไปป์จะแยกบันทึกหรือดัมพ์ฐานข้อมูลออก ช่องว่างไม่อยู่ในตัวเลือกอัตโนมัติของเครื่องมือ: ชื่อและเซลล์ข้อความอิสระมักจะมีช่องว่าง อย่าเพิ่มผู้สมัครเพียงเพราะมันเกิดขึ้นบ่อยครั้งในข้อความตัวอย่าง ตัวคั่นจะต้องแบ่งแถวออกเป็นช่องที่สอดคล้องกัน
วิธีการทำงานของการดมกลิ่น — การนับอักขระที่ผู้สมัครต่อบรรทัด และการเลือกตัวที่ให้จำนวนฟิลด์ที่สอดคล้องกันข้ามแถว
การใช้งานจะดึงเครื่องหมายลำดับไบต์ UTF-8 นำหน้า และแยกวิเคราะห์ตัวอย่างสูงสุดสิบแถวกับตัวเลือกแต่ละตัว โดยจะบันทึกความกว้างของแถวเหล่านั้นและปฏิเสธผู้สมัครที่ไม่เคยมีคอลัมน์อย่างน้อยสองคอลัมน์ ผู้สมัครจะได้คะแนนสูงกว่าเมื่อสร้างคอลัมน์มากขึ้นอย่างสม่ำเสมอในแต่ละแถว ความกว้างที่ไม่สอดคล้องกันจะถูกลงโทษสองครั้งในคะแนน สิ่งสำคัญที่สุดคือ การแยกวิเคราะห์จะสังเกตฟิลด์ที่ยกมา ดังนั้นเครื่องหมายจุลภาคภายในที่อยู่ที่ยกมาจะไม่นับเป็นขอบเขตของฟิลด์ สิ่งนี้แตกต่างจากการนับอักขระที่ไร้เดียงสา และเป็นเหตุผลว่าทำไมคอลัมน์ที่อยู่ที่ไม่เป็นระเบียบจึงไม่จำเป็นต้องตรวจจับความพ่ายแพ้
ในกรณีที่การดมกลิ่นล้มเหลว — คอลัมน์ข้อความอิสระที่เต็มไปด้วยเครื่องหมายจุลภาค ไฟล์คอลัมน์เดียว และช่องเครื่องหมายคำพูดที่ซ่อนตัวคั่นที่แท้จริง
ไม่มีการเดาเป็นสิ่งที่ไม่มีข้อผิดพลาด ไฟล์ที่สั้นมากมีหลักฐานเพียงเล็กน้อย CSV แบบคอลัมน์เดียวอย่างแท้จริงไม่มีตัวเลือกที่แยกออกเป็นสอง และการอ้างอิงที่มีรูปแบบไม่ถูกต้องอาจทำให้การแยกวิเคราะห์ของผู้สมัครหลายรายการดูขาดตอน คอลัมน์ข้อความอิสระที่เต็มไปด้วยตัวคั่นอาจแข่งขันกับตัวคั่นจริงเมื่อเครื่องหมายคำพูดเสียหาย ตัวคั่นแบบผสมข้ามแถวไม่ใช่ภาษา CSV ที่สะอาดเพียงภาษาเดียว เครื่องมือรายงานคำเตือนการแยกวิเคราะห์และเปิดเผยการเลือกตัวคั่นด้วยตนเอง ผู้ใช้ที่ทราบรูปแบบการส่งออกอัปสตรีมสามารถแทนที่ตัวเลือกที่อนุมานได้ แทนที่จะแสร้งทำเป็นว่าการศึกษาสำนึกนั้นเป็นข้อกำหนด
ตัวอย่างการทำงาน — การส่งออกที่คั่นด้วยเครื่องหมายอัฒภาคโดยมีเครื่องหมายจุลภาคอยู่ภายในที่อยู่ ซึ่งแสดงให้เห็นว่าเหตุใดการนับที่ไร้เดียงสาจึงเลือกอักขระผิด
ลองตัวอย่างเล็กๆ น้อยๆ ด้วยชื่อส่วนหัว;เมือง;โน้ต และแถว Ada;Paris;"Meeting at 10 ใกล้สถานี" การนับลูกน้ำดิบอาจนิยมใช้ลูกน้ำในทางที่ผิด เนื่องจากโน้ตมีเครื่องหมายวรรคตอน โดยเฉพาะอย่างยิ่งบนแถวดังกล่าวหลายแถว ตัวแยกวิเคราะห์อัฒภาคส่งคืนสามฟิลด์ในทั้งสองแถว ตัวแยกวิเคราะห์จุลภาคไม่ได้จัดเตรียมโครงสร้างสี่เหลี่ยมที่เหมือนกัน ยืนยันว่าการแสดงตัวอย่างแสดงชื่อ เมือง และบันทึกเป็นคอลัมน์แยกกัน ก่อนที่จะตัดแต่ง ขจัดข้อมูลที่ซ้ำกัน หรือส่งออก หากแถวต้นทางหนึ่งมีเครื่องหมายคำพูดที่ไม่ปิด ให้ตรวจสอบแถวนั้นแทนการละทิ้งอย่างเงียบๆ เพื่อปรับปรุงคะแนน
การเลือกตัวคั่นเอาต์พุต - จับคู่ตัวคั่นกับโปรแกรมและสถานที่ที่จะอ่านไฟล์ถัดไป
ตัวแยกอินพุตและตัวแยกเอาต์พุตเป็นการตัดสินใจที่แตกต่างกัน คุณอาจนำเข้าไฟล์อัฒภาคยุโรป แต่ส่งออกข้อความที่คั่นด้วยเครื่องหมายจุลภาคสไตล์ RFC สำหรับโปรแกรมที่คาดหวังเครื่องหมายจุลภาค ช่องเครื่องหมายคำพูดของผู้เขียนที่ถูกต้องประกอบด้วยตัวคั่นเอาต์พุต เครื่องหมายคำพูดแบบฝัง หรือตัวแบ่งบรรทัด ตัดสินใจว่าผู้รับของคุณต้องการ UTF-8 BOM ก่อนดาวน์โหลดหรือไม่ แอปพลิเคชั่นสเปรดชีตบางตัวใช้แอปพลิเคชั่นเพื่อจดจำการเข้ารหัสในขณะที่พาร์เซอร์จำนวนมากต้องการไฟล์ที่ไม่มีมัน ตรวจสอบส่วนหัวที่ดาวน์โหลดในโปรแกรมปลายทาง ไม่ใช่เฉพาะตัวอย่างเบราว์เซอร์เท่านั้น
สิ่งนี้ไม่ครอบคลุม — ไฟล์ที่ผสมตัวคั่นระหว่างแถว และการส่งออกที่มีความกว้างคงที่ซึ่งไม่มีตัวคั่นเลย
การตรวจจับไม่สามารถซ่อมแซมไฟล์ที่เปลี่ยนตัวคั่นได้ครึ่งทาง และไม่สามารถอนุมานคอลัมน์ในการส่งออกที่มีความกว้างคงที่โดยไม่มีตัวคั่นอยู่ ไม่ทราบว่าเครื่องหมายจุลภาคที่ยกมาหมายถึงเป็นส่วนหนึ่งของที่อยู่หรือข้อผิดพลาดในการป้อนข้อมูล โดยเป็นไปตามไวยากรณ์ ไม่ใช่ความหมาย CSV Cleaner จะแสดงแถวที่ขาดๆ หายๆ และรักษาค่าไว้ แทนที่จะคาดเดาวิธีลบข้อมูลของลูกค้า ใช้การแสดงตัวอย่างและคำเตือนเพื่อวินิจฉัยปัญหาของระบบต้นทางก่อนดำเนินการตามขั้นตอนการทำความสะอาดที่ไม่สามารถย้อนกลับได้
ทำให้ตัวคั่นชัดเจนแทนที่จะหวัง - วิธีที่ ToolAcre CSV การซ่อมแซมตัวคั่นของ Cleaner สร้างไฟล์ที่มีตัวคั่นที่สอดคล้องกันตัวเดียว
การคาดเดาด้วยตัวคั่นเป็นการแยกวิเคราะห์แถวสองสามแถวตามหลักฐาน ไม่ใช่สัญญาที่เขียนไว้ในไฟล์ CSV CSV Cleaner ใช้งานภายในเบราว์เซอร์ของคุณ ให้คุณเลือกตัวคั่นอื่นและเขียนภาษาเอาต์พุตที่สอดคล้องกันหนึ่งภาษา หากวิซาร์ดการนำเข้าคาดเดาเป็นอย่างอื่นในสัปดาห์หน้า ให้บันทึกรูปแบบเอาต์พุตข้างไฟล์ เพื่อให้ผู้อ่านคนถัดไปไม่ต้องค้นพบอีกครั้ง