Bir kötü biçimlendirilmiş bir CSV dosyası ile başa çıkmak

3 Cevap php

Ben derece kötü bir CSV dosyası var. Ben elle işlemek ve this specific file Ben başka bir çözüm var olduğunu bilmek istedim reprocess komut yazarak sonunda sorunu "çözüldü" rağmen.

(Boru) karakterleri | Sen tarafından sonlandırıldı tüm alanları içeren bir CSV dosyası var. Hızlı bir kontrol Koşu dosyasında 53 alanlar olduğunu gösterir. Size dosyayı veren kişi, sadece 28 alanlar var orada iddia ediyor. Tüm alanların onlara bilgi var. Örneğin veya veri yok olabilir beş custom_field_{num} alanlar vardır.

Nasıl bu güzel bir veritabanına almak istiyorsunuz?

Ideal çözüm (ve ben yüksek ve düşük aradı biri) sadece hayır sütun adları veya özelliklere sahip bir tabloya hepsini atmak olacaktır. Sonra tamamen boş olan herhangi bir sütun kaldırmak ve daha sonra onlara başlıkları ve özellikleri vermek.

3 Cevap

Kötü oluşmuş dosyası kötü oluşacak nereye tahmin edemez. Dahaki sefere kullanıcı size bu dosyanın ortasında olabilir dosyayı verir.

Eğer bir program ile tahmin etmeye çalışırsanız, size veri tamam bir kaç satır için kaydırılır olduğunu görebilirsiniz. Bu wack dışında şeyler koymak istiyorum. Örneğin, alan kodu sütununda görünen "Soyadı" ile sona erebilir.

Bu nedenle, her zaman elle ilk dosyayı incelemek için planlıyoruz.

Edit: If the file is large, as you say 6k+ lines, I'd write a program to detect where the issue is, and I'd tell my file provider where they made the mistake. I would not try to automatically "correct" bad data.

Sana "kötü biçimi" ile ne demek emin değilim. Ama ayırıcılar tutarlı ve sütun sayısı sadece LOAD DATA INFILE MySQL deyimi kullanmak, hatları üzerinden aynı ise. Orada alan ayırıcı olarak '|' Sen belirtebilirsiniz.

Ben msaccess Eğer sütuna göre veri hizalamak ya da görsel bir şekilde ayırıcılar kullanarak ayırmak için izin ok bir iş yaptığını bulmak. Yapabilirsiniz orada yeniden ihracat veya güncelleme doğrudan SQL içine