Convertidor a snake_case: Generador de nombres de variables para Python
Transforma al instante cualquier texto al formato *snake_case*. Ya sea que estés escribiendo código en Python, nombrando campos de bases de datos o manteniendo convenciones de nomenclatura coherentes, nuestra herramienta convierte automáticamente tu texto al formato *snake_case* correcto, siguiendo las mejores prácticas de programación.
Convierte cualquier texto a un formato *snake_case* válido en tiempo real: pega el encabezado de una columna, una frase o un identificador con formato mixto y obtén un resultado en minúsculas y separado por guiones bajos, listo para insertar directamente en el código.
Detecta los límites de las palabras a partir de espacios, guiones, cambios de mayúsculas (camelCase) y guiones bajos existentes, de modo que las entradas de diversas fuentes generan una salida coherente sin necesidad de limpieza previa.
Elimina o reemplaza caracteres que invalidarían los identificadores de Python —paréntesis, barras inclinadas, ampersands—, de modo que cada resultado sea utilizable de inmediato sin necesidad de un procesamiento posterior con expresiones regulares.
Gestiona los acrónimos escribiéndolos completamente en minúsculas (HTTP → http, API → api), de acuerdo con la PEP 8, que recomienda tratar los acrónimos como palabras comunes para facilitar la lectura.
Genera una salida compatible con Python, Ruby, PHP, SQL y cualquier entorno que trate los guiones bajos como el separador de palabras estándar en los identificadores.
Se ejecuta totalmente en el navegador: sin intercambios con el servidor ni límites de tasa, ideal para pegar de una sola vez una lista completa de nombres de columnas de base de datos.
Cómo usarlo
Introduce tu texto o nombre de variable
Previsualiza tu resultado en snake_case
Copiar texto listo para código
Desarrollo en Python
- Nombres de variables
- Nombres de funciones
- Nombres de archivo
- Nombres de los módulos
Desarrollo de bases de datos
- Nombres de tablas
- Nombres de columna
- Identificadores de campo
- Parámetros de consulta
Archivos de configuración
- Variables de entorno
- Claves de configuración
- Nombres de configuración
- Rutas de archivo
| Texto original | Resultado |
|---|---|
User Name | user_name |
first Name | first_name |
background-color | background_color |
API Response Data | api_response_data |
Lenguajes de programación
- Python
- Rubí
- PHP
- SQL
Marcos de trabajo
- Django
- Matraz
- Rails
- PostgreSQL
Al escribir modelos de Django o esquemas de SQLAlchemy, convierte aquí las descripciones de los campos (legibles para humanos) al formato `snake_case` antes de pegarlas como nombres de columna; las migraciones de base de datos son mucho más fáciles de revisar cuando los identificadores son coherentes desde el principio.
Tanto PostgreSQL como MySQL tratan los identificadores sin comillas como insensibles a las mayúsculas y los convierten internamente a minúsculas; *snake_case* es el único estilo de nomenclatura que se ve idéntico independientemente de si la base de datos los convierte a minúsculas o no, lo que hace que tu SQL sea más portable.
Para los archivos de configuración y las variables de entorno en Python, el uso de claves en formato `snake_case` (convertidas a `SCREAMING_SNAKE_CASE` para las variables de entorno) es la convención establecida, tanto en la biblioteca estándar (`os.environ`) como en librerías como Pydantic y Dynaconf; te recomendamos pasar tu lista de claves de configuración por esta herramienta antes de escribir el módulo de configuración.
Al generar automáticamente campos de `dataclass` o `TypedDict` en Python a partir de una carga útil JSON con formatos de mayúsculas y minúsculas inconsistentes, pega primero todas las claves aquí: la salida uniforme en `snake_case` hace que el cuerpo de la clase resultante sea mucho más fácil de leer y de comparar.
Ruby on Rails sigue la misma convención *snake_case* que Python para los atributos de modelo, las rutas y los métodos auxiliares; por ello, esta herramienta resulta igualmente útil al alternar entre ambos ecosistemas en un mismo proyecto.
Haz que los nombres en *snake_case* sean lo suficientemente descriptivos como para autodocumentarse: `user_shipping_address` es extenso pero inequívoco, mientras que `u_s_addr` no ahorra nada a costa de dificultar la comprensión de cualquier lector futuro.
Sigue las recomendaciones de PEP 8 que indican que los nombres de funciones y variables deben ir en minúsculas con guiones bajos, mientras que las constantes a nivel de módulo deben utilizar *SCREAMING_SNAKE_CASE*; trátalas como convenciones distintas, no intercambiables.
Evita el uso de guiones bajos al principio o al final, a menos que busques la semántica específica de Python: un único guion bajo inicial indica un miembro privado, mientras que un doble guion bajo inicial activa la ofuscación de nombres (*name mangling*) en las clases.
En SQL, mantén la coherencia en todo el esquema: mezclar tablas en `snake_case` con columnas en `camelCase` es uno de los patrones que más desorientan a los desarrolladores que se incorporan a un proyecto, además de generar fricción en cualquier mapeo ORM.
Al convertir datos importados (exportaciones CSV, payloads de APIs de terceros) a *snake_case* para uso interno, realiza la conversión en el punto de entrada mediante una única función, en lugar de dispersarla entre múltiples controladores (*handlers*).
Preguntas frecuentes
Encuentra respuestas a las preguntas más comunes sobre nuestras herramientas y servicios.
Entender snake_case
El término *snake_case* proviene del parecido visual entre los guiones bajos y una serpiente extendida en el suelo: palabras conectadas a ras de suelo en lugar de unidas mediante jorobas o guiones medios. Esta convención es anterior a Python por varias décadas, ya que apareció en funciones de la biblioteca estándar de C (como `printf`, `malloc` y `fopen`) y en nombres de herramientas de Unix durante la década de 1970. El PEP 8 de Python, publicado en 2001, lo estableció como el estilo obligatorio para nombres de funciones, variables y módulos; por ello, hoy en día se asocia directamente con Python en la mente de la mayoría de los desarrolladores, a pesar de que su uso está igualmente extendido en Ruby, PHP, SQL y la programación de *scripts* de *shell*.
La necesidad práctica más frecuente para este conversor es la correspondencia entre bases de datos y código. Cuando un analista de datos exporta un archivo CSV desde una herramienta de inteligencia empresarial, los encabezados de columna aparecen como etiquetas legibles para las personas: 'Customer First Name', 'Order Shipping Date', 'Total Revenue (USD)'. Convertir manualmente estos encabezados en identificadores válidos para Python o SQL —pasándolos a minúsculas, sustituyendo espacios por guiones bajos y eliminando paréntesis— es una tarea repetitiva y propensa a errores cuando se trabaja a gran escala. Simplemente pega aquí la fila de encabezados, realiza la conversión en un solo paso y utiliza el resultado directamente en el mapeo de renombrado de tu DataFrame de Pandas o en las definiciones de columnas de SQLAlchemy.
Un segundo caso de uso habitual es la creación de modelos de Django o Flask a partir de un documento de especificaciones. Los requisitos del producto suelen describir los campos en lenguaje natural; los desarrolladores deben traducirlos a identificadores en formato *snake_case* antes de escribir la clase del modelo. Procesar la lista de campos con este conversor desde el principio evita las inconsistencias en la nomenclatura (algunos campos convertidos manualmente y otros no) que se acumulan a lo largo del ciclo de vida del proyecto y cuya corrección resulta costosa una vez que ya existen migraciones.
La alternativa manual consiste en utilizar expresiones regulares para realizar sustituciones: algo como `re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower()` para entradas en formato *camelCase*, o `name.replace(' ', '_').lower()` para entradas separadas por espacios. Estas soluciones de una sola línea funcionan con entradas limpias, pero fallan silenciosamente en casos límite, como letras mayúsculas consecutivas (donde `HTMLParser` se convertiría en `h_t_m_l_parser`), espacios al inicio o al final, o separadores mixtos. Esta herramienta gestiona todos esos casos sin necesidad de recordar la expresión regular.
snake_case es la opción correcta en Python (para todos los identificadores que no sean constantes), Ruby (métodos, variables locales y símbolos), SQL (tablas y columnas en los principales sistemas de bases de datos), scripts de shell (nombres de variables y funciones) y Rust (variables y funciones; el compilador emitirá una advertencia si se utiliza camelCase). Es una práctica explícitamente incorrecta en JavaScript/TypeScript, Java y C# para identificadores que no sean constantes, así como en CSS para cualquier identificador. Al trabajar con varios lenguajes en un mismo proyecto, utilizar el formato adecuado para cada contexto es uno de esos pequeños hábitos que contribuyen a mantener legible el código fuente.