PythonでcamelCaseをsnake_caseに変換する方法
4 分で読了
camelCaseからsnake_caseへの変換は、特にJavaScript APIを扱う際にPythonで最も一般的な文字列変換の一つです。
方法1:正規表現
import re
def camel_to_snake(name):
s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
print(camel_to_snake("getUserById")) # get_user_by_id
方法2:手動ループ
def camel_to_snake(name):
result = [name[0].lower()]
for char in name[1:]:
if char.isupper():
result.append('_')
result.append(char.lower())
return ''.join(result)
方法3:inflectionライブラリ
import inflection
inflection.underscore("getUserById") # "get_user_by_id"
JSONキーの変換
def convert_keys(obj):
if isinstance(obj, dict):
return {camel_to_snake(k): convert_keys(v) for k, v in obj.items()}
if isinstance(obj, list):
return [convert_keys(i) for i in obj]
return obj
オンラインツール
手軽に変換するにはsnake_caseコンバーターまたはケースコンバーターハブをご利用ください。