我有以下字典
tempdata = {'logs': [
{'starttime':'901',
'time':'5'
},
{'starttime':'902',
'time':'3'
},
{'starttime':'900',
'time':'2'
},
{'starttime':'901',
'time':'2'
},
{'starttime':'905',
'time':'1'
},
{'starttime':'904',
'time':'1'
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想主要按starttime
. 我做得很好:
tempdata['logs'] = sorted(tempdata['logs'],key=lambda k: k['starttime'])
Run Code Online (Sandbox Code Playgroud)
但是现在,我也想按时间对它们进行排序。
预期输出:
tempdata = {'logs': [
{'starttime':'900',
'time':'2'
},
{'starttime':'901',
'time':'2'
},
{'starttime':'901',
'time':'5'
},
{'starttime':'902',
'time':'3'
},
{'starttime':'904',
'time':'1'
},
{'starttime':'905',
'time':'1'
}
]
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成这个任务?我查找了 sorted(),但找不到我要找的东西。
我知道有一个类似的问题已经被问过,但没有回答我的需要,因为我的情况有点不同.
我的代码:
def tFileRead(fileName, JSON=False):
with open(fileName) as f:
if JSON:
return json.load(f)
for line in f:
yield line.rstrip('\n')
Run Code Online (Sandbox Code Playgroud)
我想做什么:如果JSON
是真的,它意味着它从json文件中读取并且我想返回json.load(f)
,否则,我想将文件的行放到生成器中.
我已经尝试过将生成器转换为json的替代方案,但是它非常混乱,非常快,而且效果不好.