python中经常遇到非常多变量有规律的添加后缀,这时候就要使用好for循环和format语句做好替换,减少代码出错率。
比如:有一个字典所有后面的通通加上匹配的后缀,扩展开来,如图:
完整代码如下:
ret_data ={
'board1': {
'total_paying': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 总付费人数 {num:人数,rate_day:环比,rate_week:周环比}
'training_camp': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 付费人数训练营
'special_column': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 付费人数专栏
'vip_member': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 付费人数会员
'activate_user': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 激活用户
'dau': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # DAU
'customer_price': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 客单价
'amount': {'num': 0, 'rate_day': 0, 'rate_week': 0, }, # 成交金额
},
# 面板2
'board2': {
'new_customer_remain_day': {'data': 0, 'avg': 0}, # 新用户次留存 {data:数值,avg:30天平均值}
'new_customer_remain_week': {'data': 0, 'avg': 0}, # 新用户周留
'active_customer_remain_day': {'data': 0, 'avg': 0}, # 活跃次留
'active_customer_remain_week': {'data': 0, 'avg': 0}, # 活跃周留
'product_details': {'data': 0, 'avg': 0}, # 浏览商详人数
'reservation': {'data': 0, 'avg': 0}, # 预约人数
'product_details_rate': {'data': 0, 'avg': 0}, # 浏览人数训练营转换率
'reservation_rate': {'data': 0, 'avg': 0}, # 预约人数转换率
}
}
如果我要一个个匹配,大概要40个名称,我一个个打那就不要学python了,哈哈哈!
所以开始取巧:
1.写一个匹配模板
word1 = """
board1['v']['num'] = data['v_num']
board1['v']['rate_day'] = data['v_rate_day']
board1['v']['rate_week'] = data['v_rate_week']
"""
word1 = """
board2['v']['data'] = data['v_data']
board2['v']['avg'] = data['v_avg']
"""
2.对字典进行for循环
if __name__ == '__main__':
for v in ret_data['board1'].key():
print(word1.format(v=v))
fro v in ret_data['board2'].key():
print(word2.format(v=v))
得出四十个结果
总结:1.使用for和format语句
2.固定不变,format进行遍历和替换