我不确定我所拥有的是实际上是否创建了新字典。我想把一个文件当前在每行上用逗号分隔两个单词,并将它变成一个字典,其中第一个单词是键,第二个单词是值。我看到,如果我打印,单词是分开的,但我不确定它是否正确返回。由于将文件转换为键/值字典
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
我认为你的缩进是关闭的 –