Python 将文件转换为键/值字典

Python 将文件转换为键/值字典,python,dictionary,Python,Dictionary,我不确定我所拥有的是否真的是在创建一本新词典。我想获取一个文件,该文件当前每行有两个用逗号分隔的单词,并将其转换为字典,第一个单词是键,第二个是值。我看到,如果我打印,文字是分开的,但我不确定是否返回正确。谢谢 WDictionary = open('file.csv', 'r') for line in WDictionary: mylist = line.split(',') return mylist 编辑:如建议的那样 dict(line.strip().split('

我不确定我所拥有的是否真的是在创建一本新词典。我想获取一个文件,该文件当前每行有两个用逗号分隔的单词,并将其转换为字典,第一个单词是键,第二个是值。我看到,如果我打印,文字是分开的,但我不确定是否返回正确。谢谢

WDictionary = open('file.csv', 'r')
for line in WDictionary:
    mylist = line.split(',')
    return mylist
编辑:如建议的那样

dict(line.strip().split(',') for line in WDictionary)
编辑:如建议的那样

dict(line.strip().split(',') for line in WDictionary)
使用模块

他们已经解决了您试图解决的问题,包括引用问题、迭代行和解析:)

您可以在代码中尝试以下操作:

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
不知道这是否有帮助,但请举一个小的用法示例,以防您不确定如何使用它。

使用该模块

他们已经解决了您试图解决的问题,包括引用问题、迭代行和解析:)

您可以在代码中尝试以下操作:

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

不知道这是否有帮助,但是举一个小的用法示例,以防你不确定如何使用它。

我想你的缩进已经关闭了。我想你的缩进已经关闭了。你可能想抛出一个
映射(str.strip,line.split(','))
来摆脱新行摆脱新行是个好主意,但在我看来
dict(line.strip().split)(“,”)用于WDictionary中的行)
比使用map更清晰。为了消除内部空白,
map
版本可能更好(如果需要的话)。因为您是新的--答案使用的语法称为dict comprehension。这是一种通过WDictionary进行迭代并将每一行的结果添加到新词典中的速记方法。可能需要抛出一个
映射(str.strip,line.split(','))
去掉换行符是个好主意,但是在我看来,
dict(line.strip().split(',')对于WDictionary中的行)
比使用map更清晰。为了去掉内部空白,map版本可能更好(如果需要的话).因为您是新的--答案使用的语法称为dict comprehension。这是一种通过WDictionary迭代并将每一行的结果添加到新字典中的速记方式。与直接在读取器上迭代相比,第二个示例的目的是什么?即使您想单独打开文件,也只需返回直接从
readACSV
读取,而不是不必要地在其周围包装另一个生成器。您是对的,我试图将其放入OP的示例中,第二个示例的目的是什么,而不是直接迭代读取器?即使您想隔离打开文件,也只需直接从
返回读取器即可readACSV
而不是不必要地将另一个生成器包装在它周围。你是对的,我试图将它融入OP的示例中