我不確定我所擁有的是實際上是否創建了新字典。我想把一個文件當前在每行上用逗號分隔兩個單詞,並將它變成一個字典,其中第一個單詞是鍵,第二個單詞是值。我看到,如果我打印,單詞是分開的,但我不確定它是否正確返回。由於將文件轉換爲鍵/值字典
WDictionary = open('file.csv', 'r')
for line in WDictionary:
mylist = line.split(',')
return mylist
我不確定我所擁有的是實際上是否創建了新字典。我想把一個文件當前在每行上用逗號分隔兩個單詞,並將它變成一個字典,其中第一個單詞是鍵,第二個單詞是值。我看到,如果我打印,單詞是分開的,但我不確定它是否正確返回。由於將文件轉換爲鍵/值字典
WDictionary = open('file.csv', 'r')
for line in WDictionary:
mylist = line.split(',')
return mylist
dict(line.split(',') for line in WDictionary)
編輯:作爲建議
dict(line.strip().split(',') for line in WDictionary)
可能想拋出一個'map(str.strip,line.split(','))'那裏擺脫新行 – Claudiu
擺脫新行是一個好主意,但在我看來'dict(line.strip()。split(',')for line in WDictionary)'比使用map更清晰。爲了擺脫內部空白,'map'版本可能會更好(如果需要的話)。 –
由於你是新的 - 答案使用的語法稱爲詞典理解。這是通過遍歷WDictionary並將每行結果添加到新字典的簡便方法。 – thumbtackthief
使用CSV模塊
import csv
with open('some.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
print row
他們已經解決了,你正在試圖解決的問題,其中包括引號問題,迭代線,並解析出來:)
你可以嘗試這樣的事情對你的代碼:
import csv
def readACSV():
with open('file.csv', 'r') as WDictionary
reader = csv.reader(WDictionary)
for row in reader:
yield row
for line in readACSV():
print line
不知道是否有幫助,但如果一個小的使用示例你不確定如何使用它。
第二個例子的目的是什麼,而不是直接迭代讀者?即使你想隔離打開文件,只需從'readACSV'直接返回讀卡器,而不是不必要地在其周圍纏繞另一個發生器。 –
你是對的,我試圖將其納入OP的例子中 – mlnyc
我認爲你的縮進是關閉的 –