Data & hamparan · CSV Pembersih
CSV Dialek Pelepasan aksara: Petikan Berganda, Segaris Belakang dan Eksport Pangkalan Data
· Latar belakang
csv menghurai kebolehoperasian
RFC 4180 berkata untuk menggandakan petikan; beberapa alat pangkalan data mengeksport dengan garis miring ke belakang. Siaran ini menerangkan konvensyen pelepasan aksara dalam edaran, dari mana setiap asalnya, dan sebab fail yang sah dalam satu dialek pecah dalam dialek lain.
Eksport pangkalan data yang dibaca oleh hamparan dengan garis miring ke belakang yang sesat — dua tradisi pelepasan aksara bertembung dalam satu fail
Eksport boleh mengandungi garis miring ke belakang diikuti dengan petikan kerana pengeluarnya mengikut konvensyen gaya bahasa pengaturcaraan, manakala penghurai berorientasikan hamparan menjangkakan petikan dua kali ganda. Memberi makan satu dialek kepada yang lain tidak mewujudkan kompromi neutral. Ia berubah apabila keadaan petikan membuka dan menutup atau meninggalkan aksara pelepasan aksara dalam data.
ToolAcre menyokong satu peraturan yang jelas: medan boleh dibalut dengan petikan berganda dan petikan dalam diwakili oleh dua petikan. Serangan ke belakang tidak mempunyai peranan pelepasan aksara. Mengenal pasti kontrak itu sebelum memuatkan adalah lebih selamat daripada meminta pembersih meneka tanda baca yang dimaksudkan oleh pengeluar.
Konvensyen RFC — balut dengan petikan berganda dan gandakan sebarang petikan dalaman, tanpa watak pelepasan aksara sama sekali
Untuk nilai seperti `She said "hello", then left`, gaya RFC CSV mengelilingi medan dan menulis tanda dalam dua kali. Pembatas kekal dalam keadaan petikan, dan setiap pasangan berganda mengembalikan satu petikan literal. Serialisasi menggunakan transformasi yang sama secara terbalik.
Medan dipetik apabila ia mengandungi pembatas semasa, petikan, LF, CR atau ruang sekeliling, atau apabila Petikan setiap medan dipilih. Tiada watak pelepasan aksara yang berasingan. Tatabahasa kecil ini diuji untuk pembatas, pengakhiran rekod terbenam dan pasangan petikan.
Tradisi C — petikan yang dilepaskan dengan garis miring ke belakang, baris baharu dan pembatas yang diwarisi daripada bahasa pengaturcaraan dan beberapa pemuat pangkalan data
Sesetengah sistem sumber boleh mentakrifkan konvensyen sengkang terbalik, tetapi ToolAcre tidak mempunyai suis untuknya. Segaris ke belakang dilampirkan pada medan semasa seperti mana-mana watak biasa. Petikan berikut kemudian ditafsirkan mengikut sama ada penghurai berada dalam keadaan petikan dan sama ada petikan itu mempunyai petikan berpasangan.
Oleh yang demikian, eksport garis miring ke belakang harus dihuraikan oleh alat yang dikonfigurasikan untuk dialek tersebut sebelum penukaran kepada petikan dua kali ganda CSV. Cari-dan-ganti adalah berisiko kerana garis miring ke belakang literal dan urutan yang terlepas boleh kelihatan sama. Tatabahasa sumber mesti menentukan yang mana satu sintaks.
Pelepasan aksara dengan garis miring ke belakang ialah dialek alternatif yang tidak disokong, bukan mod ToolAcre boleh membaca
Buku kerja menamakan produk pangkalan data dan pustaka bingkai data, namun lalai dan mod boleh dikonfigurasikannya tidak didokumenkan dalam repositori ini. Artikel ini tidak mengaitkan dialek kepada mana-mana vendor tertentu. Rujuk dokumentasi pengeksport atau pemuat yang tepat yang digunakan oleh aliran kerja.
Tangkap arahan dan pilihan yang menghasilkan fail. Produk mungkin menyokong beberapa mod, jadi namanya sahaja bukan dialek. Kebolehulangan datang daripada konfigurasi serta sampel yang mengandungi kes tepi pembatas, petikan, baris baharu dan segaris ke belakang.
Pangkalan data dan lalai perpustakaan tertentu memerlukan dokumentasi mereka sendiri dan tidak dituntut di sini
Di bawah penghurai ini, `"a \"quote\"",b` tidak bermaksud perkara yang dijangkakan oleh pembaca gaya C, kerana garis miring kekal dalam teks dan petikan mengawal keadaan CSV. Sebaliknya, pasangan berganda dalam medan yang disebut menjadi satu petikan dan bukannya dua aksara literal.
Ketidakpadanan boleh mencetuskan lajur yang dialihkan atau amaran petikan tidak tertutup, atau ia mungkin menghuraikan rentetan yang kelihatan salah tanpa ralat struktur. Pratonton baris wakil dan bandingkannya dengan pengeluar. Kejayaan sintaksis sahaja tidak dapat mengesahkan bahawa semantik pelepasan aksara dipadankan.
Di bawah peraturan ToolAcre, garis miring ke belakang kekal literal dan petikan dua kali ganda adalah satu-satunya petikan yang pelepasan aksara
Tulis satu sel yang mengandungi koma dan petikan sebagai RFC CSV: `"She said ""hi"", then left"`. ToolAcre mengembalikan nilai tepat `She said "hi", then left`. Tulis petikan dalam dengan garis miring ke belakang dan perhatikan bahawa garis miring tidak mempunyai perlindungan khas.
Perbandingan menunjukkan peraturan parser tanpa bergantung pada jenama pangkalan data. Selepas penghuraian yang betul, muat turun menghasilkan petikan dua kali ganda secara konsisten. Selepas penghuraian yang tidak sepadan, pengeksportan sahaja menyeragamkan sel yang salah, jadi selesaikan dialek sumber sebelum mempercayai hasilnya.
Perkara ini tidak meliputi — eksport binari, fail lebar tetap dan aksara pelarian tersuai sepenuhnya
Eksport binari, rekod lebar tetap dan aksara pelarian tersuai berada di luar laluan. Sebut harga yang tidak ditutup dilaporkan dan menggunakan baki input sebagai satu medan; pembersih tidak membuat kesimpulan di mana kepunyaan rapat yang hilang. Kekaburan itu tidak boleh diperbaiki secara umum.
Antara muka juga tidak menukar dialek sengkang terbalik secara automatik. Gunakan penghurai yang menamakan watak pelepasan aksara secara eksplisit, dapatkan jadual rentetan yang disahkan, dan kemudian bersiri kepada konvensyen sasaran. Setiap tatabahasa hendaklah digunakan sekali pada sempadan yang diketahui.
Ketahui dialek pada kedua-dua hujung — bagaimana ToolAcre CSV Pembaikan petikan Cleaner menormalkan medan ke arah petikan konsisten yang dibaca oleh penghurai standard
Ketahui kedua-dua titik akhir. ToolAcre sesuai apabila sumber mengikuti petikan dua kali ganda CSV atau apabila penghurai lain telah menormalkan dialek lain ke dalam sel yang disahkan. Outputnya menawarkan petikan minimum atau semua medan yang konsisten dan menggandakan setiap petikan terbenam.
Jangan silap muat turun yang telah dibersihkan sebagai pengesanan dialek. Pengesan automatik memilih pembatas, bukan pelepasan aksara daripada tatabahasa. Pemisah rekod pemindahan yang boleh dipercayai, peraturan sebut harga, dasar baris baharu dan pengekodan bersama-sama, kemudian menguji sampel lawan sebelum data pengeluaran bergerak.