2011-09-20 71 views
1

我在一個Python腳本中使用sqlite3從客戶端的電子表格中提取數據。我的客戶計劃添加到電子表格中,因此我的sqlite代碼應該根據從第一行中提取的標題生成其列。我該怎麼做呢?這是我的天真嘗試:使用python對象創建表格

import sqlite3 
conn = sqlite3.connect('./foo.sql') 
c = conn.cursor() 
for line in file: 
    if line[0] == 'firstline': 
    # Below is the line in question 
    c.execute(""" create table if not exists bar(?, ? ,?); """, lineTuple) 
    else: 
    c.execute(""" insert into bar values (?, ?, ?); """, lineTuple) 
+1

電子表格不是數據庫。 –

+0

我知道這個區別。 –

+0

使數據庫看起來像電子表格用於導入目的是讓人們遠離電子表格的第一步。另外,爲了記錄,有一個腳本通常會調用'create table',因爲在這種情況下,你會花時間調試用戶放入的垃圾箱(空格,特殊字符,unicode,換行符等)列標題。 –

回答

1

我認爲,python的csv模塊可以幫助您提取文件數據。

首先,用csv格式(保存爲csv命令)將電子表格轉換爲適當的分隔符。

那麼,試試下面的代碼片段:

import csv 
file_ptr = open('filename.csv','r'); 
fields = range(0, total number of columns in file header) 
file_data = csv.DictReader(file_ptr, fields, delimiter=',') 
for data in file_data: 
    print data 
    # data will be in dict format and first line would be all your headers,else are column data 
    # here, database query and code processing 

希望,這將是有幫助的。