2016-04-10 8 views
1

Verileri bir .csv dosyasından bir SQLite tablosuna başlıklarla veriyorum. Bu tabii yapmak kolaydır ve ben sadece aşağıdaki yapabileceğini: AncakPython kullanarak .csv dosyasını SQLite Tablosuna alırken veri türünü belirtmenin etkili yolu?

sqlite> .separator "," 
sqlite> .import 2015.csv tennisresults2015 

Sonra 'METİN' veri türüne tüm sütunlar varsayılan bunu yaparsanız. Bunun yerine, sayısal alanımın her zaman uygun olan 'INTEGER' veya 'REAL' veri türlerine varsayılan olmasını istiyorum.

Şimdi ben bir tablo oluşturmak zaman aşağıdaki kod hattı üzerinden Python açıkça her sütunu tanımlayabilirsiniz anlıyoruz: gördüğünüz gibi

conn = sqlite3.connect('tennisresults.db') #connection 
c = conn.cursor() #get a cursor object, all SQL commands are processed by it    
c.execute('CREATE TABLE tennisresults2015(ATP INTEGER, Location TEXT, Tournament TEXT)') #etc 

Ancak bu .csv dosyası sütunların bir yeri vardır dosyanın ilk iki satır aşağıda gösterildiği: bunu yapmanın yerine beni elle Python her alan adı ve veri türünü belirten bir daha verimli bir yol olup olmadığını merak ediyorum

ATP,Location,Tournament,Date,Series,Court,Surface,Round,Best of,Winner,Loser,WRank,LRank,WPts,LPts,W1,L1,W2,L2,W3,L3,W4,L4,W5,L5,Wsets,Lsets,Comment,B365W,B365L,EXW,EXL,LBW,LBL,PSW,PSL,MaxW,MaxL,AvgW,AvgL 
1,Brisbane,Brisbane International,01/05/2015,ATP250,Outdoor,Hard,1st Round,3,Duckworth J.,Simon G.,125,21,430,1730,6,2,6,2,,,,,,,2,0,Completed,4.5,1.18,4.3,1.2,4.33,1.2,4.67,1.23,4.73,1.23,4.31,1.2 

?

+0

Sütun adlarını dosyadan okuyabilirsiniz. –

+0

Evet Yapabilirim. Ama yine de Python'da veri tipini belirtmem gerek. Her sütundaki veri türü ile .csv dosyasında bir satır (sütun başlığı satırı altında, ancak ilk veri satırının üstünde) eklemek ve doğrudan dosyadan okumak mümkün olabilir mi? Eğer öyleyse bunu nasıl yapardım? –

+0

Bunu daha önce anladın mı? Eğer öyleyse, lütfen bir cevap gönderin. (Gerçekten kullanabilirdim.) – scoobybejesus

cevap

0

Maalesef cevabın basitçe hayır olduğunu, istediğiniz şeyi yapmak için yerleşik bir yol olmadığını düşünüyorum. Aşağıdakilere gereksiniminiz var:

  • Sorunuza dahil ettiğiniz gibi bir oluşturma ifadesini açıkça kullanın.
  • Veya, csv dosyasında veri türlerini içerir ve onları okumak ve gerçek ithalat onları dışlamak için kendi ayrıştırma mekanizması yazma (İçe yerleşik kullanmak yerine kendiniz gerçekleştirmek gerekir.)
İlgili konular