Tiếng Việt

Dữ liệu & bảng tính · CSV Trình dọn dẹp

Giá trị được phân tách bằng tab so với CSV: Tại sao TSV tồn tại và khi nào nên sử dụng nó

· Lý lịch

csv tsv data-formats

Các phiên bản được phân cách bằng dấu phẩy và tab của một bảng văn bản tự do theo các đường dẫn phân tích cú pháp riêng biệt
Hình minh họa vector ToolAcre gốc

Các tab hiếm khi xuất hiện bên trong dữ liệu, đó chính xác là lý do tại sao TSV tồn tại. Bài đăng này giải thích nguồn gốc của các tệp được phân tách bằng tab, cách chúng vượt qua các vấn đề trích dẫn của CSV và chúng vẫn còn thiếu sót ở đâu.

Văn bản miễn phí chứa đầy dấu phẩy và dấu ngoặc kép liên tục phá vỡ CSV xuất — trường hợp khiến các tab trở nên hấp dẫn

Ghi chú văn bản tự do thường chứa dấu phẩy, vì vậy đầu ra được phân cách bằng dấu phẩy cần có dấu ngoặc kép xung quanh các ô đó. Một tab có thể xuất hiện ít thường xuyên hơn trong tập dữ liệu cụ thể đó, điều này có thể làm cho tệp TSV yên tĩnh hơn về mặt hình ảnh. Nó không loại bỏ sự cần thiết của trình phân tích cú pháp hoặc thỏa thuận về các tab và dòng mới được nhúng.

ToolAcre coi tab là một trong bốn dấu phân cách. Máy trạng thái trường trích dẫn giống nhau sẽ chạy bất kể dấu phân cách nào được chọn. Điều này có nghĩa là quyết định thay đổi một đặc điểm cấu trúc, không phải mô hình an toàn cho mọi giá trị khó xử.

TSV xuất phát từ đâu — nguồn gốc máy đánh chữ của ký tự tab và cách sử dụng ban đầu của nó trong kết xuất cơ sở dữ liệu và dữ liệu khoa học

Sổ làm việc yêu cầu lịch sử từ máy đánh chữ đến kết xuất cơ sở dữ liệu nhưng những xác nhận quyền sở hữu đó không có trong cấu hình, triển khai hoặc thử nghiệm sản phẩm. Mô-đun này bỏ qua trình tự thời gian đó và tập trung vào hành vi mà người đọc có thể tái tạo bằng trình phân tích cú pháp được cung cấp.

Một tab trong văn bản nguồn chỉ đơn giản là ` ` đối với máy trạng thái khi được chọn làm dấu phân cách. Dấu ngoặc kép bên ngoài nó kết thúc một trường; bên trong dấu ngoặc kép nó vẫn là một phần của trường. Quy tắc đó đủ để so sánh các định dạng mà không cần bịa ra câu chuyện gốc.

Nguồn gốc máy đánh chữ và lịch sử cơ sở dữ liệu ban đầu là bằng chứng bên ngoài kho lưu trữ

TSV có thể giảm trích dẫn khi giá trị chứa dấu phẩy nhưng không có tab, dấu ngoặc kép hoặc phần cuối bản ghi. Đề cương cho biết hầu hết các phương ngữ TSV đều không cần trích dẫn; Bộ nối tiếp của ToolAcre chính xác hơn. Nó trích dẫn bất kỳ trường nào chứa dấu phân cách đã chọn, dấu ngoặc kép, LF, CR hoặc khoảng trắng xung quanh.

Do đó, một ghi chú chứa tab thực phải được trích dẫn dưới đầu ra tab và trích dẫn theo nghĩa đen được nhân đôi bên trong trường đó. Văn bản tự do cũng có thể chứa dấu ngắt dòng và vẫn được trích dẫn. Việc chọn một dấu phân cách không phổ biến sẽ làm giảm xung đột trong tập dữ liệu; nó không bao giờ làm cho các quy tắc va chạm biến mất.

ToolAcre vẫn áp dụng trích dẫn kiểu RFC khi dữ liệu được phân cách bằng tab chứa các tab, dấu ngoặc kép hoặc dòng mới

Các tab không rõ ràng về mặt trực quan vì người chỉnh sửa có thể hiển thị chúng dưới dạng không gian có chiều rộng thay đổi. Việc sao chép thông qua phần mềm chuyển đổi các tab thành dấu cách có thể phá hủy dấu phân cách trong khi vẫn để một người có thể đọc được tệp. Kiểm tra các ký tự ẩn hoặc dựa vào bản xem trước của trình phân tích cú pháp trước khi khai báo kết quả một cột không đúng định dạng.

ToolAcre ghi lại tab đã phát hiện vào vùng chọn được gắn nhãn và hiển thị số lượng cột, giúp hiển thị lựa chọn vô hình. Nếu tệp thực sự là văn bản được căn chỉnh theo dấu cách chứ không phải TSV thì tính năng phát hiện tab sẽ không tạo cột. Lựa chọn thủ công không thể tạo ra các dải phân cách không có.

Thoát khỏi quy ước — chuỗi dấu gạch chéo ngược trong một số phương ngữ TSV so với trích dẫn kiểu RFC trong CSV

Một số phương ngữ dạng bảng sử dụng chuỗi dấu gạch chéo ngược cho tab hoặc dòng mới. ToolAcre thì không. Trình phân tích cú pháp của nó nhận dạng dấu ngoặc kép và trường trích dẫn kép kiểu RFC dưới mỗi dấu phân cách đã chọn. Dấu gạch chéo ngược là văn bản ô thông thường và không thoát khỏi ký tự tiếp theo.

Sự không khớp đó có thể để lại dấu gạch chéo lạc hoặc ranh giới sớm khi tải bản xuất được định cấu hình cho một phương ngữ khác. Trước tiên, hãy xác định các quy tắc thoát hiểm của nhà sản xuất. Việc chuyển đổi an toàn yêu cầu phân tích cú pháp phương ngữ gốc, không thay thế các cặp chữ cái gạch chéo mà không biết liệu chúng có phải là chữ hay không.

Dấu gạch chéo ngược TSV phương ngữ không được hỗ trợ; ToolAcre sử dụng dấu ngoặc kép cho mỗi dấu phân cách đã chọn

Lấy id tiêu đề, ghi chú và hai giá trị: một ghi chú cho biết `red, small`, trong khi ghi chú khác chứa tab thực. Trong đầu ra bằng dấu phẩy, ghi chú đầu tiên được trích dẫn và tab có thể vẫn không được trích dẫn vì nó không phải là dấu phân cách. Trong đầu ra tab, dấu phẩy là thông thường nhưng giá trị mang tab được trích dẫn.

Phân tích từng đầu ra bằng dấu phân cách phù hợp và cả hai bảng đều khôi phục các chuỗi giống nhau. Bài tập này cho thấy rằng cả hai định dạng đều không tránh được việc xử lý đặc biệt. Dấu phân cách đã chọn chỉ thay đổi ký tự nào kích hoạt trích dẫn cũng như dấu ngoặc kép và phần cuối bản ghi.

Điều này không bao gồm những gì - định dạng có chiều rộng cố định và định dạng bảng nhị phân

Các định dạng bảng có chiều rộng cố định và nhị phân nằm ngoài tuyến đường. Nó không suy ra các cột từ căn chỉnh trực quan hoặc giải mã vùng chứa cột. Đầu vào phải ở dạng văn bản CSV, TSV hoặc văn bản thuần túy sử dụng dấu phẩy, dấu chấm phẩy, tab hoặc dấu gạch đứng hoặc được hỗ trợ JSON theo hướng ngược lại.

Tuyến đường cũng không cung cấp ký tự thoát tùy chỉnh. Nếu quy trình làm việc khoa học hoặc cơ sở dữ liệu xác định ngữ pháp TSV của chính nó, hãy sử dụng trình phân tích cú pháp được định cấu hình cho ngữ pháp đó trước khi đưa văn bản chuẩn hóa vào đây. Phần mở rộng không đủ bằng chứng về khả năng tương thích phương ngữ.

Chọn dấu phân cách cho dữ liệu và người tiêu dùng — cách ToolAcre CSV sửa chữa dấu phân cách của Cleaner tạo ra tệp được phân tách nhất quán cho hệ thống mà bạn đang cung cấp

Chọn một dấu phân cách theo cả dữ liệu và người tiêu dùng, sau đó nêu rõ ràng. ToolAcre có thể phát hiện tab và dấu phẩy từ mẫu mười hàng hình chữ nhật hoặc chấp nhận ghi đè thủ công. Nó không kiểm tra nội dung ngữ nghĩa và quyết định rằng các ghi chú xứng đáng với các tab.

Sau khi phân tích cú pháp, hãy giải quyết các cảnh báo hàng và tuần tự hóa bằng cùng một dấu phân cách hoặc dấu phân cách được hỗ trợ khác. Xử lý báo giá gấp đôi tiêu chuẩn sẽ bảo vệ xung đột. Kết quả nhất quán vì dấu phân cách đã được biết chứ không phải vì TSV hoặc CSV vốn không bị ảnh hưởng bởi dấu câu trong dữ liệu.