我的目标是在Python中创建一个字典。我有一个.csv文件,其中包含两列,第一个是'单词',另一个是'意思'。我正在尝试读取字典格式的csv文件,并在给出'单词'时获取'含义'。创建字典
你能帮我告诉我如何获得'单词'的价值?这是我的尝试:
我的代码,
>>> with open('wordlist.csv', mode = 'r') as infile:
... reader = csv.reader(infile)
... with open('wordlist.csv', mode = 'w') as outfile:
... writer = csv.writer(outfile)
... mydict = {rows[0]:rows[1] for rows in reader}
... print(mydict)
...
结果证明是,
{}
下一个我想是,
>>> reader = csv.reader(open('wordlist.csv', 'r'))
>>> d = {}
>>> for row in reader:
... k, v = row
... d[k] = v
...
但当我想使用这个,结果是这样的 -
>>> d['Try']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Try'
下一个代码我试过了,
>>> reader = csv.DictReader(open('wordlist.csv'))
>>> result = {}
>>> for row in reader:
... key = row.pop('word')
... if key in result:
... pass
... result[key] = row
... print result
...
它并没有给我任何答案的。
>>> for row in reader:
... for column, value in row.iteritems():
... result.setdefault(column, []).append(value)
... print result
...
这也没有给我一个结果。
CSV文件的顶部是否有标题行?多少?如果可能,请提供您想要阅读的CSV文件顶部的几行示例行。这应该有助于我们明白为什么它不起作用。 –
你的第一个代码似乎打开'final_word.csv'进行读取,然后再次打开它*写入*,这将清除文件的内容。这看起来并不像你想要的那样。 – DSM
事实上,鉴于DSM指出的问题,我怀疑这个文件在你以后的测试中是空的!我希望你有一个可用的备份副本。您的代码的更高版本可能会或可能不会工作,具体取决于您的文件内容。例如,有没有标题行?你有没有重复的“字”值(如果是这样,你想如何处理它们)? – Blckknght