需要实现一个json中key由驼峰转蛇形变量的转换功能,因此写了一个camel case to snake case的函数,不求效率有多高,只求简单有效:
import re
def camel_to_snake_case(text):
matches = re.finditer('[A-Z]', text)
contents = []
last_start = 0
for it in matches:
start, end = it.span()
if start > 0:
contents.append(text[last_start:start])
last_start = start
contents.append(text[last_start:])
return '_'.join(contents).lower()
if __name__ == '__main__':
import sys
camel_text = sys.argv[1]
snake_text = camel_to_snake_case(camel_text)
print("{} => {}".format(camel_text, snake_text))
print(camel_text.lower().replace('_', '') == snake_text.replace('_', ''))
网友评论