camelCase in snake_case umwandeln in Python

4 Min. Lesezeit

Die Konvertierung von camelCase zu snake_case ist eine der häufigsten String-Transformationen in Python, besonders bei der Arbeit mit JavaScript-APIs.

Methode 1: Regex

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

Methode 2: Manuelle Schleife

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)

Methode 3: inflection-Bibliothek

import inflection
inflection.underscore("getUserById")  # "get_user_by_id"

JSON-Schlüssel konvertieren

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

Online-Tool

Für schnelle Konvertierungen verwenden Sie unseren snake_case-Konverter oder den Case-Converter-Hub.