2011-05-09 69 views
0

我已經將文件導出爲CSV。在Excel中,數據是所有在第一列(每排四列),它看起來像這樣 -將csv轉換爲數據庫的Python腳本

like "name"  "email"   "message" 
"yes" "John Smith" "[email protected]" "My message" 
...etc. 

當我導入的文件,這是我得到的 -

'"""like"",""name"",""email"",""message"""\r"" 
"yes"",""John Smith"",""[email protected]"",""My message"""' 

我該如何在Python中轉換此字符串,以便將其插入數據庫中?我想我需要將每一行分隔成一個列表,然後運行一個for循環將所有其他行壓縮到第一行。然後從元組列表中創建一個字典並將其插入到數據庫中。這種方法看起來是否正確?我怎麼會把這個奇怪的字符串轉換成 - 我有困難嘗試這樣做?謝謝。

更新

誠然,這不是要做到這一點最有效的/實用的方法...

反向從去年底 -

{'like':'yes','name':'John Smith','email': '[email protected], 'message': 'My message'} 

這可到達在做 -

zip[('like','name','email','message'),('yes','name','email','message')] 

並使用for循環,以便在(tuple[0],tuple[n])上執行zip。

那麼,我將如何將原始python字符串轉換爲元組列表,以便我可以將它添加到數據庫 - 是否有更好的方法來做到這一點(不包括使用python模塊來輕鬆完成此操作)?

+0

你能給你正在尋找的確切格式的例子對於?你有沒有寫過任何代碼?究竟哪一部分你有麻煩? – 2011-05-09 09:37:33

回答

2

使用Python的標準庫來解析CSV文件並解壓縮,你需要把你的數據庫中的數據:

import csv 
with open('some.csv', 'rb') as f: 
    reader = csv.reader(f, delimiter=' ') 
    for row in reader: 
     print row 

來源:http://docs.python.org/library/csv.html