2010-03-09 20 views
6

Chúng tôi đang gặp phải một số vấn đề đáng kể khi tạo chức năng tải lên hàng loạt cho ứng dụng nhỏ của chúng tôi. Chúng tôi đang sử dụng đá quý FasterCSV để tải dữ liệu lên cơ sở dữ liệu MySQL nhưng nhanh hơn CSV của anh ấy rất nhanh và chính xác trong các yêu cầu của nó liên tục bị lỗi với lỗi CSV và lỗi hết thời gian.Làm cách nào để xử lý trước dữ liệu CSV cho FasterCSV?

Tệp csv thường được tạo bởi văn bản dán của người dùng từ trang web của họ hoặc từ tài liệu Microsoft Word, vì vậy không hợp lý để mong đợi sẽ không bao giờ có các ký tự kỳ lạ như dấu ngoặc kép thông minh hoặc dấu trọng âm trong dữ liệu. Ngoài ra, người dùng sẽ không thể dễ dàng xác định liệu dữ liệu của họ có đủ hoàn hảo cho FasterCSV hay không. Chúng ta cần phải tìm cách tự khắc phục chúng.

Có cách nào tốt hay công cụ đáng tin cậy để xử lý dữ liệu CSV trước để sửa bất kỳ phần nào trong dữ liệu trước khi xử lý đá quý FasterCSV không?

+0

Nó thực sự phụ thuộc. Bạn đang gặp phải loại lỗi nào? –

+0

Trích dẫn thông minh nhất từ ​​Word và các ký tự không thường xuyên hoặc các ký tự đặc biệt từ Word hoặc HTML. Đôi khi một viên đạn lạc. Chỉ những thứ bình thường bạn nhận được khi bạn dán nhiều đoạn văn bản vào một ô Excel. –

Trả lời

1

Bạn có thể chuyển loại mã hóa của tệp thành tùy chọn FasterCSV khi tạo phiên bản mới của trình phân tích cú pháp FasterCsv. (xem tài liệu tại đây: http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018)

Đặt nó thành utf-8 hoặc mã hóa của Microsoft sẽ vượt qua hầu hết các ký tự thừa, cho phép thực tế phân tích chuỗi yêu cầu của bạn ... sau đó bạn có thể xóa chuỗi nội dung của trái tim. Ngoài ra còn có một cái gì đó trong các tài liệu về "chuyển đổi" mà bạn có thể vượt qua - mặc dù điều này nhằm mục đích chuyển đổi, nói, số hoặc các loại ngày, bạn có thể sử dụng nó để gsub cho các ký tự dodgy.

+0

Cảm ơn rất nhiều! Chúng tôi sẽ thử nó. –

1

Thử Gem smarter_csv - bạn có thể vượt qua một khối với nó là phương pháp Proces và dữ liệu dọn dẹp trước khi nó được sử dụng

https://github.com/tilo/smarter_csv

Các vấn đề liên quan