Entonces, básicamente, tengo algunos scripts de Python con cadenas que representan declaraciones SQL con algunos argumentos con nombre, por ejemplo:

schdl_stmt = "select * from bar.schedule where date = '{date}'"

Utilizo esto para interpolar la fecha de forma dinámica.

Mi flujo de trabajo implica ejecutar / depurar estas consultas en DataGrip, por lo que realmente necesito una forma de que DataGrip utilice esta sintaxis de argumento con nombre, de lo contrario, estoy atascado editando manualmente la declaración con demasiada frecuencia.

DataGrip le permite agregar patrones de expresiones regulares personalizados para tal caso de uso en la configuración que se muestra a continuación:

enter image description here

Sin embargo, no he podido encontrar uno que funcione para el patrón de cadena de argumentos con nombre de Python.

He intentado:

  • "{name}"
  • "\{name\}"

Si simplemente no es posible debido a alguna advertencia sobre cómo DataGrip maneja estos patrones, sería útil saberlo también.

0
strider 27 oct. 2020 a las 14:41

1 respuesta

La mejor respuesta

El patrón correcto es

\{(\w+)\}

Con 'Sustituir dentro de cadenas SQL' habilitado.

Lea este documento para obtener más detalles.

3
moscas 28 oct. 2020 a las 09:11