常用处理 - dict 按 key 排序 ¶
作者:KK
发表日期:2019.10.08
先基于应用场景来说 ¶
与其它服务端做接口对接时,一般都需要参数签名,往往需要将一个 dict 的参数按 key 的字母排序再进行 hash 签名计算,示例代码如下:
import urllib.parse
params = {
'name': 'Jay',
'age': 19,
'is_disabled': 0,
}
paramsStr = urllib.parse.urlencode(params)
keySortedParamsStr = sorted(paramsStr.split('&'))
print(keySortedParamsStr)
# 输出 age=19&is_disabled=0&name=Jay
正式讲讲dict的排序 ¶
其实这里才是针对本文章标题的正式内容
def sortByKey(dictVar):
sortedTuple = sorted(dictVar.items(), key = lambda x:x[0])
sortedDict = {}
for tupleItem in sortedTuple:
sortedDict[tupleItem[0]] = tupleItem[1]
return sortedDict
params = {
'name': 'Jay',
'age': 19,
'is_disabled': 0,
}
print( sortByKey(params) )
输出:{'age': 19, 'is_disabled': 0, 'name': 'Jay'}