如何使用python中的特定键将CSV文件添加到字典中?

如何使用python中的特定键将CSV文件添加到字典中?,python,csv,dictionary,Python,Csv,Dictionary,我在谷歌上搜索过这个网站,但过去的问题对我没有帮助。我想在python中向字典中添加一个复杂的CSV文件。该文件有六列 0 0 1 A PAID Gave money to 0 5 5 A CRASH Stock market calamity 0 11 10 A BARD Singing poet 这是一个纵横字谜游戏。每列对应于游戏中的一个值。以第二行为例: 0==y axis on crossword grid 5== x ax

我在谷歌上搜索过这个网站,但过去的问题对我没有帮助。我想在python中向字典中添加一个复杂的CSV文件。该文件有六列

0   0   1   A   PAID    Gave money to
0   5   5   A   CRASH   Stock market calamity
0   11  10  A   BARD    Singing poet
这是一个纵横字谜游戏。每列对应于游戏中的一个值。以第二行为例:

0==y axis on crossword grid
5== x axis on crossword grid
5== the box number on crossword grid
A== Direction on crossword grid (across)
CRASH== the word to be guessed.
Stock market calamity== the crossword clue.
我想将所有这些都分配到一个字典,我们称之为wordDict,然后将wordDict放入“大字典”,称为拼图,使用该单词作为关键字名称

我是用手工的方法做的。我不可能像这样处理整个文件。这太乏味了。CSV文件中有84行。我想使用for循环来完成这项工作,但我不知道,因为我的教科书没有说明如何完成这项工作

请记住,我一次读取一行CSV文件,去掉制表符和换行符

以下是我如何像教科书一样手动完成的:

wordDict['y']='0'
wordDict['x']='5'
wordDict['box']='5'
wordDict['direction']='A'
wordDict['word']='CRASH'
wordDict['clue']='Stock market calamity'
puzzle['CRASH']='wordDict'

有没有一种方法可以这样循环整个过程?

假设您的输入文件是以制表符分隔的,您可以通过几行代码来完成:

import csv    

with open(filename) as file:
    reader = csv.DictReader(
        file,
        delimiter='\t',
        fieldnames=['y', 'x', 'box', 'direction', 'word', 'clue'],
    )
    puzzle = {dct['word']: dct for dct in reader}
这给了我:

>>> import pprint
>>> pprint.pprint(puzzle)
{'BARD': {'box': '10',
          'clue': 'Singing poet',
          'direction': 'A',
          'word': 'BARD',
          'x': '11',
          'y': '0'},
 'CRASH': {'box': '5',
           'clue': 'Stock market calamity',
           'direction': 'A',
           'word': 'CRASH',
           'x': '5',
           'y': '0'},
 'PAID': {'box': '1',
          'clue': 'Gave money to',
          'direction': 'A',
          'word': 'PAID',
          'x': '0',
          'y': '0'}}

请参阅上的文档,它完成了大部分工作。

“我在谷歌上搜索过这个网站,但过去的问题对我没有帮助”——我简直不敢相信。有标记的和,加上其他地方的大量文档,这不是一项非常困难的任务。请注意,您当前的尝试将字符串
'worddict'
,而不是您刚才精心构建的字典,放入
拼图中。我建议您阅读并-
csv。DictReader
可以为您完成大部分工作。