如何从python中的词典创建词典?
我在名为dataVal.txt的文本文件中有这两个表 我希望输出如下所示:- “主题”:“上传”:“16:00:00”:“数学”:“100”、科学::95……诸如此类。 基本上,“Subject”是第一个表的主键,该表的值为“upload”,然后“upload”成为键,该键的值为“16:00:00”,然后该键成为键,其值为数学、科学、英语等,其值分别为100、95、65等如何从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
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'}}}}