Python 将驼峰字符串转为下划线形式

1. 正则检测字符串是否有大写字母;

2. 如果有则将其转为小写形式并添加下划线,使用新字符替代原大写字符;

def turn_param_style(self, params: dict):
    '''
    将参数名的驼峰形式转为下划线形式
    @param params:
    @return:
    '''
    temp_dict = {}
    for name, value in params.items():
        temp_name = ""
        if re.search("[A-Z]", name):
            capital_letters = re.findall("[A-Z]", name)
            for c in capital_letters:
                lower_c = c.lower()
                r_str = "_" + lower_c
                temp_name = name.replace(c, r_str)
        else:
            temp_name = name

        temp_dict.update({temp_name: value})

    return temp_dict

其他的转换方法,这里没有将驼峰字符都转为小写形式

变成下划线的条件
①从第一个我们看不出什么,只知道都是小写
②从第二个我们得出信息:当前字母为大写,前一个字母为小写,需要在中间加入’_’
③从第三个我们得出信息:当前字母为大写,前一个字母也为大写,后一个字母为小写,需要在当前字母和前一个字母之间加上’ _ ’
④得到的输出全部为小写字母,这个我们看作次要因素,最后一起转为小写

def turn_param_style(self, params: dict):
    '''
    将参数名的驼峰形式转为下划线形式
    @param params:
    @return:
    '''
    temp_dict = {}
    for name, value in params.items():
        new_name = ""
        name += " "  # 为了防止数据溢出
        for i in range(len(name) - 1):
            if i == 0:
                new_name += name[i]
            elif name[i].isupper() and name[i - 1].islower():
                new_name += "_" + name[i]
            # 如果不在前面加上name += " ",这里会索引越界
            elif name[i].isupper() and name[i - 1].isupper() and name[i + 1].islower():
                new_name += "_" + name[i]
            else:
                new_name += name[i]
        temp_dict.update({new_name: value})

    return temp_dict

参考:

【Python】驼峰变量转换为下划线_InceptionZ的博客-CSDN博客_python 驼峰转下划线

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值