如何从嵌套字典中获取单个项
我正在从一个文件中读取数据,数据大概是这样的:
{"day" :"Monday", "alarm":"on", "kids":"School" , "work":"days"}
{"day" :"Tuesday", "alarm":"on", "kids":"School" , "work":"days"}
{"day" :"Wednesday", "alarm":"on", "kids":"School" , "work":"days"}
{"day" :"Thursday", "alarm":"on", "kids":"School" , "work":"nights"}
{"day" :"Friday", "alarm":"on", "kids":"School" , "work":"nights"}
{"day" :"Saturday", "alarm":"off", "kids":"Dance" , "work":"overtime"}
{"day" :"Sunday", "alarm":"off", "kids":"Soccer" , "work":"off"}
我把这些数据放进一个字典里,然后根据一些条件来检查这个字典,最后把这个字典放进另一个字典里,像这样:
import ast
o=open('schedule.txt','rb')
day_={}
for lines in o:
dict_={}
dict_= ast.literal_eval(lines)
if dict_['day']=='Monday':
day_['1']=dict_.items()
elif dict_['day']=='Tuesday':
day_['2']=dict_.items()
elif dict_['day']=='Wednesday':
day_['3']=dict_.items()
elif dict_['day']=='Thursday':
day_['4']=dict_.items()
elif dict_['day']=='Friday':
day_['5']=dict_.items()
elif dict_['day']=='Saturday':
day_['6']=dict_.items()
elif dict_['day']=='Sunday':
day_['7']=dict_.items()
else:
print('there was an error')
o.close()
print day_.items()
#this seems to work properly
现在如果我只想知道孩子们在第4天做了什么,我该怎么做呢?或者有没有更简单的方法来在程序中保存这些数据,以便将来使用?
1 个回答
2
你可以通过使用字典来简化你的代码,把星期几的名字和数字对应起来。比如,如果你想提取第4天的"kids"
这个项目,你可以用result[4]["kids"]
来实现:
days = {"Monday": 1, "Tuesday": 2, "Wednesday": 3, "Thursday": 4,
"Friday": 5, "Saturday": 6, "Sunday": 7}
result = {}
with open('schedule.txt', 'rb') as f:
for line in f:
d = ast.literal_eval(line)
result[days[d["day"]]] = d
print result[4]["kids"]