Merge pull request #15175 from wimnat/feature/camel_case_fixing

Add function to convert CamelCased key names to snake_names
This commit is contained in:
Brian Coca 2016-03-27 14:12:23 -07:00
commit b77bba8f9f

View file

@ -262,3 +262,24 @@ def paging(pause=0):
return page
return wrapper
def camel_dict_to_snake_dict(camel_dict):
def camel_to_snake(name):
import re
first_cap_re = re.compile('(.)([A-Z][a-z]+)')
all_cap_re = re.compile('([a-z0-9])([A-Z])')
s1 = first_cap_re.sub(r'\1_\2', name)
return all_cap_re.sub(r'\1_\2', s1).lower()
snake_dict = {}
for k, v in camel_dict.iteritems():
if isinstance(v, dict):
v = camel_dict_to_snake_dict(v)
snake_dict[camel_to_snake(k)] = v
return snake_dict