Tôi có một tệp CSV mà tôi muốn phân tích - vấn đề là một nửa số dấu ngoặc kép được sử dụng làm dấu ngoặc kép và dấu phẩy bên trong trường chính. Chúng không thực sự là CSV, nhưng chúng có một số trường cố định có thể nhận dạng được. Các phương ngữ = csv. "Vượt trội" thiết lập hoạt động hoàn hảo trên các tập tin với phần thêm "và ký tự bên trong lĩnh vực này.Tệp CSV có dấu ngoặc kép và dấu phẩy bên trong các trường
Những thông tin này là cũ/không được hỗ trợ. Tôi cố gắng để đẩy một số cuộc sống vào nó.
ví dụ
"AAAAA
AAAA
AAAA
AAAA","AAAAAAAA
AAAAAA
AAAAA "AAAAAA" AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA, AAAAA
AAAAAAAAA AAAAA AAAAAAAAAA
AAAAA, "AAAAA", AAAAAAAAA
AAAAAAAA AAAAAAAA
AAAAAAA
"
này được vấp ngã phân tích cú pháp tập tin, và ném một lỗi _csv.Error: newline inside string
. tôi narrrowed nó xuống đến vấn đề này là bằng cách loại bỏ các dấu ngoặc kép từ bên trong lĩnh vực thứ 2 và các mô-đun csv.reader phân tích các tập tin OK .
Một số các trường là nhiều dòng - Tôi không chắc liệu điều đó có quan trọng không.
Tôi đã poking xung quanh tại các thiết lập phương ngữ, và trong khi tôi có thể tìm thấy 'skipinitialspace', điều này dường như không giải quyết được vấn đề.
Để được rõ ràng -. Đây là không hợp lệ 'CSV', các đối tượng dữ liệu của nó mà lỏng lẻo theo một cấu trúc CSV, nhưng có, và "ký tự bên trong kiểm tra lĩnh vực
Các lineterminator là \ x0d \ x0a
Tôi đã thử một số lần theo các phép tính khác nhau của doublequote và biến trích dẫn trong mô-đun phương ngữ, nhưng tôi không thể lấy phân tích cú pháp này một cách chính xác. chỉ tồn tại trên các ranh giới của trường.
Vấn đề này chỉ tồn tại cho một (cuối cùng) của một số trường trong tệp và có hàng nghìn tệp.
CSV phù hợp sử dụng hai ký tự trích dẫn liên tiếp ('" "') để thoát khỏi ký tự trích dẫn trong trường được trích dẫn. Ngoài ra, trường có thể không được bỏ phiếu và không có lối thoát nào là cần thiết, mặc dù dấu phẩy và dòng mới không thể xuất hiện trong một trường như vậy. Dấu nháy đơn như thế này thường không hợp lệ. Có thể sửa đổi các tùy chọn của nguồn dữ liệu CSV của bạn để phù hợp hơn với sự mong đợi của hầu hết các trình đọc CSV khác (kể cả python) hay không. – SingleNegationElimination
Tôi đã kế thừa dữ liệu - và có rất nhiều dữ liệu ... Vì vậy, tôi không thể làm bất kỳ điều gì ngoại trừ việc tạo một trình phân tích cú pháp có thể chọn lại nó. –
Các tệp không bị hỏng, cấu trúc kém/kém được cấu trúc dưới dạng CSV."Tôi thừa hưởng dữ liệu" là chính xác 'lý do' - đó chỉ là những gì sẽ xảy ra. Dữ liệu cũ/bị bỏ rơi và tôi muốn hồi sinh lại. –