Exemplo em Python

Converter snake_case para camelCase em Python

Divida snake_case por underscores, mantenha o primeiro token minúsculo e capitalize os seguintes.

Por Equipe editorial do Camel Case ConverterPublicado em 12 de set. de 2026Última revisão

Código Python

def snake_to_camel(value: str) -> str:
    parts = [part for part in value.strip("_").split("_") if part]
    if not parts:
        return ""
    head, *tail = parts
    return head.lower() + "".join(part[:1].upper() + part[1:].lower() for part in tail)

print(snake_to_camel("user_profile_image"))
# userProfileImage

Remova underscores nas bordas e tokens vazios de separadores repetidos para resultado determinístico.

Python normalmente usa snake_case; a conversão é mais útil nas fronteiras com JSON, APIs ou frontends JavaScript.

Casos extremos a considerar

  • O formato das siglas depende da convenção do sistema consumidor.
  • dicts aninhados precisam de conversão recursiva de chaves, não só de uma função de string.
  • Maiúsculas, hífens e espaços exigem tokenização mais geral.
  • Para contratos API fixos, prefira converter na serialização/deserialização.

Exemplo

AntesDepois
user_profile_imageuserProfileImage
__user__profile__userProfile
api_response_urlapiResponseUrl
created_atcreatedAt

Código Python

cases = {
    "user_profile_image": "userProfileImage",
    "__user__profile__": "userProfile",
    "api_response_url": "apiResponseUrl",
    "created_at": "createdAt",
}

for value, expected in cases.items():
    assert snake_to_camel(value) == expected

Testar a conversão online

Use o conversor para verificações rápidas, lotes, siglas ou entradas com várias convenções.

Detectado: snake_case
Saída camelCase
userProfileImageUrl

Todos os formatos de nomenclatura

camelCase
userProfileImageUrl
PascalCase
UserProfileImageUrl
snake_case
user_profile_image_url
kebab-case
user-profile-image-url
CONSTANT_CASE
USER_PROFILE_IMAGE_URL
dot.case
user.profile.image.url
path/case
user/profile/image/url

A conversão acontece localmente no navegador. Sua entrada não é enviada a um servidor de conversão.