所以我試圖解決這個問題很長一段時間了,並試圖找出爲什麼我的代碼將無法工作,但我根本無法得到字典用所有正確的鍵值打印:我需要的值對。Python使用逗號分隔符將.csv文件轉換爲字典
這就是故事。我正在閱讀一個.csv文件,其中第一列是文本縮寫,第二列是全文的含義。現在我嘗試了多種嘗試打開該文件的方法,閱讀它,然後將其存儲到我們創建的字典中。我的問題是文件被讀取,當我打印分離的部分(我相信它貫穿整個文件,但我不知道,因爲它確實在1007行左右被切斷,但是到達4600.問題是,當我現在要採取所有的東西,並把它變成鍵:值對的字典裏是被存儲在文件中的第一行唯一的一個
下面是代碼:
def createDictionary(filename):
f = open(filename, 'r')
dic = {}
for line in f:
#line = line.strip()
data = line.split(',')
print data
dic[data[0]] = data[1]
print dic
我認爲是問題是:
print dic
既然是印刷在循環內部,但是由於它在循環中,所以每次它一次又一次地打印時應該打印。我很困惑我做錯了什麼。我嘗試使用的其他方法是json,但我不太瞭解如何使用它,然後我也閱讀了csv模塊,但我認爲我們的教授不希望我們使用它,所以我希望有人發現我的錯誤。提前致謝!!!
編輯
這是我的計劃
going to be late\rg2cu', 'glad to see you\rg2e', 'got to eat\rg2g', 'got to go\rg2g2tb', 'got to go to the bathroom\rg2g2w', 'got to go to work\rg2g4aw', 'got to go for a while\rg2gb', 'got to go bye\rg2gb2wn', 'got to go back to work now\rg2ge', 'got to go eat\rg2gn', 'got to go now\rg2gp', 'got to go pee\rg2gpc', 'got 2 go parents coming\rg2gpp', 'got to go pee pee\rg2gs', 'got to go sorry\rg2k', 'good to know\rg2p', 'got to pee\rg2t2s', 'got to talk to someone\rg4u', 'good for you\rg4y', 'good for you\rg8', 'gate\rg9', 'good night\rga', 'go ahead\rgaalma', 'go away and leave me alone\rgafi', 'get away from it\rgafm', 'Get away from me\rgagp', 'go and get pissed\rgaj'
的輸出,它應該打印整個字典之後,正好爲一點,直到文件的末尾,然後在其中我得到這個
{'$$': 'money\r/.'}
連同
none
EDIT 2
下面是完整的代碼:
def createDictionary(filename):
f = open(filename, 'r')
dic = {}
for line in f:
line = line.strip()
data = line.split(',')
print data
dic[data[0]] = data[1]
print dic
if __name__ == "__main__":
x = createDictionary("textToEnglish.csv")
print x
編輯3
這裏是我努力使之成爲一本字典
文件https://1drv.ms/u/s!AqnudQBXpxTGiC9vQEopu1dOciIS
你能告訴我們一點,它的輸出呢? –
您是指當我運行程序時從終端上看到的內容?如果是這樣,我仍然是這個網站的新手,除了截圖以外不知道如何顯示它? –
*我相信它貫穿整個文件,但我不知道,因爲它確實在1007行左右被截斷,但是會到達4600. *唉,相信不是編程的一部分,因爲我們沒有魔法工作 - 你的代碼能處理較小的文件,可能少於1000行?代碼究竟如何中斷? –