Dữ liệu & bảng tính · CSV Trình dọn dẹp
CSV Thoát khỏi các phương ngữ: Dấu ngoặc kép, dấu gạch chéo ngược và xuất cơ sở dữ liệu
· Lý lịch
csv phân tích cú pháp khả năng tương tác
RFC 4180 yêu cầu nhân đôi trích dẫn; thay vào đó, một số công cụ cơ sở dữ liệu xuất bằng dấu gạch chéo ngược. Bài đăng này giải thích các quy ước thoát đang được lưu hành, mỗi quy ước đến từ đâu và tại sao một tệp hợp lệ trong một phương ngữ lại bị phá vỡ trong một phương ngữ khác.
Xuất cơ sở dữ liệu mà bảng tính đọc có dấu gạch chéo ngược lạc lối - hai truyền thống thoát va chạm trong một tệp
Quá trình xuất có thể chứa dấu gạch chéo ngược theo sau là dấu ngoặc kép vì nhà sản xuất nó tuân theo quy ước về kiểu ngôn ngữ lập trình, trong khi trình phân tích cú pháp theo bảng tính yêu cầu dấu ngoặc kép. Việc truyền tải phương ngữ này sang phương ngữ kia không tạo ra sự thỏa hiệp trung lập. Nó thay đổi vị trí trạng thái được trích dẫn mở và đóng hoặc để lại các ký tự thoát trong dữ liệu.
ToolAcre hỗ trợ một quy tắc rõ ràng: các trường có thể được gói trong dấu ngoặc kép và dấu ngoặc kép bên trong được thể hiện bằng hai dấu ngoặc kép. Dấu gạch chéo ngược không có vai trò thoát. Xác định hợp đồng đó trước khi tải sẽ an toàn hơn việc yêu cầu người dọn dẹp đoán xem nhà sản xuất dự định chấm câu nào.
Quy ước RFC — đặt trong dấu ngoặc kép và nhân đôi bất kỳ dấu ngoặc kép bên trong nào, không có ký tự thoát nào cả
Đối với một giá trị như `She said "hello", then left`, kiểu RFC CSV bao quanh trường và ghi các dấu bên trong hai lần. Dấu phân cách vẫn ở trong trạng thái trích dẫn và mỗi cặp nhân đôi trả về một trích dẫn theo nghĩa đen. Việc tuần tự hóa áp dụng phép biến đổi tương tự theo chiều ngược lại.
Các trường được trích dẫn khi chúng chứa dấu phân cách hiện tại, dấu ngoặc kép, LF, CR hoặc khoảng trắng xung quanh hoặc bất cứ khi nào Trích dẫn mọi trường được chọn. Không có ký tự thoát riêng biệt. Ngữ pháp nhỏ này được kiểm tra về các dấu phân cách, phần cuối của bản ghi được nhúng và các cặp trích dẫn.
Truyền thống C - dấu ngoặc kép thoát khỏi dấu gạch chéo ngược, dòng mới và dấu phân cách được kế thừa từ các ngôn ngữ lập trình và một số trình tải cơ sở dữ liệu
Một số hệ thống nguồn có thể xác định quy ước dấu gạch chéo ngược, nhưng ToolAcre không có công tắc nào cho chúng. Dấu gạch chéo ngược được thêm vào trường hiện tại giống như bất kỳ ký tự thông thường nào. Sau đó, trích dẫn sau đây được diễn giải tùy theo trình phân tích cú pháp có ở trạng thái được trích dẫn hay không và liệu nó có trích dẫn được ghép nối hay không.
Do đó, việc xuất dấu gạch chéo ngược phải được phân tích cú pháp bằng công cụ được định cấu hình cho phương ngữ đó trước khi chuyển đổi sang dấu ngoặc kép CSV. Tìm kiếm và thay thế rất rủi ro vì dấu gạch chéo ngược theo nghĩa đen và chuỗi thoát có thể trông giống nhau. Ngữ pháp nguồn phải quyết định cái nào là cú pháp.
Thoát dấu gạch chéo ngược là một phương ngữ thay thế không được hỗ trợ, không phải chế độ ToolAcre có thể đọc được
Sổ làm việc đặt tên cho các sản phẩm cơ sở dữ liệu và thư viện khung dữ liệu, tuy nhiên các chế độ mặc định và cấu hình của chúng không được ghi lại trong kho lưu trữ này. Bài viết này không quy một phương ngữ cho bất kỳ nhà cung cấp cụ thể nào. Tham khảo tài liệu chính xác của nhà xuất khẩu hoặc trình tải được sử dụng trong quy trình làm việc.
Nắm bắt lệnh và các tùy chọn tạo ra tệp. Một sản phẩm có thể hỗ trợ một số chế độ, vì vậy chỉ riêng tên của nó không phải là một phương ngữ. Khả năng tái tạo đến từ cấu hình cộng với một mẫu chứa các trường hợp dấu phân cách, trích dẫn, dòng mới và dấu gạch chéo ngược.
Các giá trị mặc định của cơ sở dữ liệu và thư viện cụ thể yêu cầu tài liệu riêng và không được xác nhận ở đây
Trong trình phân tích cú pháp này, `"a \"quote\"",b` không có nghĩa là điều mà trình đọc kiểu C có thể mong đợi vì dấu gạch chéo vẫn còn trong văn bản và dấu ngoặc kép chi phối trạng thái CSV. Ngược lại, một cặp nhân đôi bên trong trường trích dẫn sẽ trở thành một trích dẫn thay vì hai ký tự bằng chữ.
Sự không khớp có thể kích hoạt các cột bị dịch chuyển hoặc cảnh báo trích dẫn không được tiết lộ hoặc có thể phân tích cú pháp thành các chuỗi trông sai mà không có lỗi cấu trúc. Xem trước các hàng đại diện và so sánh chúng với nhà sản xuất. Chỉ thành công về mặt cú pháp không thể chứng nhận rằng ngữ nghĩa thoát phù hợp.
Theo quy tắc ToolAcre, dấu gạch chéo ngược vẫn giữ nguyên theo nghĩa đen và dấu ngoặc kép là lối thoát trích dẫn duy nhất
Viết một ô chứa cả dấu phẩy và dấu ngoặc kép là RFC CSV: `"She said ""hi"", then left"`. ToolAcre trả về giá trị chính xác `She said "hi", then left`. Thay vào đó, hãy viết trích dẫn bên trong bằng dấu gạch chéo ngược và quan sát rằng dấu gạch chéo không có sự bảo vệ đặc biệt.
Sự so sánh thể hiện các quy tắc phân tích cú pháp mà không phụ thuộc vào thương hiệu cơ sở dữ liệu. Sau khi phân tích cú pháp chính xác, quá trình tải xuống sẽ tạo ra dấu ngoặc kép một cách nhất quán. Sau khi phân tích cú pháp không khớp, việc xuất chỉ chuẩn hóa các ô sai, vì vậy hãy giải quyết phương ngữ nguồn trước khi tin cậy vào kết quả.
Điều này không bao gồm - xuất nhị phân, tệp có chiều rộng cố định và ký tự thoát hoàn toàn tùy chỉnh
Xuất nhị phân, bản ghi có chiều rộng cố định và ký tự thoát tùy chỉnh nằm ngoài tuyến đường. Một báo giá chưa được tiết lộ sẽ được báo cáo và sử dụng thông tin đầu vào còn lại dưới dạng một trường; người dọn dẹp không suy ra được vị trí đóng bị thiếu. Sự mơ hồ đó không thể được sửa chữa một cách tổng quát.
Giao diện cũng không tự động chuyển đổi phương ngữ dấu gạch chéo ngược. Sử dụng trình phân tích cú pháp đặt tên rõ ràng cho ký tự thoát, lấy bảng gồm các chuỗi đã được xác minh và sau đó tuần tự hóa theo quy ước đích. Mỗi ngữ pháp nên được áp dụng một lần tại một ranh giới đã biết.
Biết phương ngữ ở cả hai đầu — cách ToolAcre CSV Sửa chữa trích dẫn của Trình dọn dẹp bình thường hóa các trường theo hướng trích dẫn nhất quán mà trình phân tích cú pháp tiêu chuẩn đọc
Biết cả hai điểm cuối. ToolAcre phù hợp khi nguồn tuân theo dấu ngoặc kép CSV hoặc khi một trình phân tích cú pháp khác đã chuẩn hóa một phương ngữ khác vào các ô được xác minh. Đầu ra của nó cung cấp báo giá tối thiểu hoặc toàn trường nhất quán và nhân đôi mỗi trích dẫn được nhúng.
Đừng nhầm lẫn bản tải xuống đã được làm sạch với việc phát hiện phương ngữ. Trình phát hiện tự động chọn dấu phân cách, không thoát khỏi ngữ pháp. Một trình phân tách bản ghi chuyển giao đáng tin cậy, quy tắc trích dẫn, chính sách dòng mới và mã hóa cùng nhau, sau đó kiểm tra một mẫu đối nghịch trước khi di chuyển dữ liệu sản xuất.