python将字段转换成key=value字符串
""" 将字典排序转换成键值对 dictA={"a":"1","c":"3","e":"5","d":"4","b":"2"} """ dictA = {"a": "1", "c": "3", "e": "5", "d": "4", "b": "2"} dictA = sorted(dictA.items()) keyValue = "&".join(['{}={}'.format(*i) for i in dictA]) print(keyValue)
运行结果:
a=1&b=2&c=3&d=4&e=5
测试应用:
接口文档:
解决代码:
import hashlib def sign(json_data, secret_string): new_list = sorted(json_data.items()) # 将字典按照key正序排列 # 将字典按照key1=value1&key2=value2……的形式转化为字符串 key_value = "&".join(['{}={}'.format(*i) for i in new_list]) # MD5加密 md5 = hashlib.md5() new_string = key_value + secret_string md5.update(new_string.encode("utf-8")) sign_string = md5.hexdigest() return sign_string.upper() # 输出字符串字母大写 if __name__ == '__main__': data = {"access_key": "Tmzlwrbym9OMkSDd", "taskName": "任务A", "templateId": 31} secret = "Ze2a7acuSBciveXD9svyLSqpU7ErCIcr" print(sign(data, secret))
运行结果: