小编Isl*_*arf的帖子

按多个值对字典列表进行排序

我有以下字典

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(),但找不到我要找的东西。

python sorting dictionary

6
推荐指数
1
解决办法
5291
查看次数

在发生器内返回参数

我知道有一个类似的问题已经被问过,但没有回答我的需要,因为我的情况有点不同.

我的代码:

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的替代方案,但是它非常混乱,非常快,而且效果不好.

python json generator readfile

5
推荐指数
1
解决办法
2975
查看次数

标签 统计

python ×2

dictionary ×1

generator ×1

json ×1

readfile ×1

sorting ×1