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

2024-09-27 00:21:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索过这个网站,但过去的问题对我没有帮助。我想在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放入“大字典”,称之为puzzle,使用单词作为关键字名。你知道吗

我是用手工做的。我不可能把整个文件都这样处理。太乏味了。CSV文件中有84行。我想使用for循环来完成这个,但是我不知道,因为我的教科书没有显示如何完成。你知道吗

请记住,我读取的CSV文件,作为f一行一次剥离制表符和换行符

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

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

有没有一种方法可以像这样循环整个过程?你知道吗


Tags: 文件csvthetobox字典onstock
1条回答
网友
1楼 · 发布于 2024-09-27 00:21:36

假设您的输入文件是以制表符分隔的,您可以通过几行代码来实现这一点:

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'}}

请参阅^{}上的文档,它完成了大部分工作。你知道吗

相关问题 更多 >

    热门问题