如何从python中的词典创建词典?

如何从python中的词典创建词典?,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我在名为dataVal.txt的文本文件中有这两个表 我希望输出如下所示:- “主题”:“上传”:“16:00:00”:“数学”:“100”、科学::95……诸如此类。 基本上,“Subject”是第一个表的主键,该表的值为“upload”,然后“upload”成为键,该键的值为“16:00:00”,然后该键成为键,其值为数学、科学、英语等,其值分别为100、95、65等 Date Subject Maths Science English French Spanish

我在名为dataVal.txt的文本文件中有这两个表

我希望输出如下所示:-

“主题”:“上传”:“16:00:00”:“数学”:“100”、科学::95……诸如此类。 基本上,“Subject”是第一个表的主键,该表的值为“upload”,然后“upload”成为键,该键的值为“16:00:00”,然后该键成为键,其值为数学、科学、英语等,其值分别为100、95、65等

Date        Subject     Maths  Science English French  Spanish German
16:00:00    Uploaded      100    95      65      32      23      45 
17:00:00    Unknown        45    53      76      78      54      78  
18:00:00    Captured       43    45      56      76      98      34 

Date        BoardType     Maths  Science English French  Spanish German
16:00:00     CBSE          50     95      65      32      23      45 
17:00:00     NTSE          45     53      76      78      54      78  
18:00:00     YTTB         100     45      56      76      98      34 

这是我迄今为止所做的,但我想这还不够准确

请尝试此操作,并修复以下问题:

dic = dict()
with open('C:\\Users\\aman.seth\\Documents\\dataVal.txt','r') as fh:
    for l in fh.readlines():
        try:
            lines = l.split('\t')
            date, sub, num = lines[0], lines[1], [str(x) for x in lines[2:]]
            dic.setdefault(sub, {})
            dic[sub][date] = num
        except Exception as er:
            print er
print dic
输出:

import re

dic = dict()

with open('txt', 'r') as fh:
    memory = None
    for line in fh.readlines():
        lines = line.rstrip('\n')
        if line.split():
            try:
                match = re.search('(BoardType|Subject)', line)
                if match:
                    memory = match.group(1)
                    dic.setdefault(memory, {})
                    header = line.split()
                    mark_index = header[2:]
                else:
                    mark_dict = dict()
                    lines = [ x for x in line.split(' ') if x]
                    date, sub, num = lines[0], lines[1], [str(x) for x in lines[2:]]
                    dic[memory].setdefault(sub, {})
                    mark = dict(zip(mark_index, num))
                    dic[memory][sub][date] = mark
            except Exception as error:
                print 'Error: ', error
import pprint
pprint.pprint(dic)

我认为你给出的例子并不是你想要的结果。。。你打开了更多的
{
花括号比你关闭的大!我已经编辑了它。请检查它。由于我无法生成正确的输出,我无法显示我到底想要什么,但我提供了一个描述。请检查一下,如果你仍然不理解,请告诉我你确定…?这是一个非常奇怪的数据结构。它会更有意义要将表转换为dict列表,其中表中的每一行都是dict,dict的键是列标题能否请您提供代码,以便我可以尝试运行它并查看输出并将其与我的关联?谢谢,您的
dataVal.txt
文件是否可以用制表符分隔?在这种情况下,您可以使用我知道这太多了,但只是多一点帮助。嘿,伙计,你在那里。需要你的帮助。我在聊天室给你留了几条信息。我不确定你是否收到了它们。无论如何,我还需要你的帮助n、 如果你能回来,我将不胜感激。谢谢!:)
{'BoardType': {'CBSE': {'16:00:00': {'English': '65',
                                     'French': '32',
                                     'German': '45',
                                     'Maths': '50',
                                     'Science': '95',
                                     'Spanish': '23'}},
               'NTSE': {'17:00:00': {'English': '76',
                                     'French': '78',
                                     'German': '78',
                                     'Maths': '45',
                                     'Science': '53',
                                     'Spanish': '54'}},
               'YTTB': {'18:00:00': {'English': '56',
                                     'French': '76',
                                     'German': '34',
                                     'Maths': '100',
                                     'Science': '45',
                                     'Spanish': '98'}}},
 'Subject': {'Captured': {'18:00:00': {'English': '56',
                                       'French': '76',
                                       'German': '34\n',
                                       'Maths': '43',
                                       'Science': '45',
                                       'Spanish': '98'}},
             'Unknown': {'17:00:00': {'English': '76',
                                      'French': '78',
                                      'German': '78\n',
                                      'Maths': '45',
                                      'Science': '53',
                                      'Spanish': '54'}},
             'Uploaded': {'16:00:00': {'English': '65',
                                       'French': '32',
                                       'German': '45\n',
                                       'Maths': '100',
                                       'Science': '95',
                                       'Spanish': '23'}}}}