Uso de variables globales de pilones con JavaScript (paréntesis de escape)

Estoy tratando de acceder a un resultado en un diccionario contenido en una variable global de Python dentro de JavaScript.

var selected = jQuery('.target option:selected').text() var list = "${c.persons_by_permission["+selected+"]}" 

Si accedo directamente al diccionario sin usar la variable:

 var list = "${c.persons_by_permission['stringID']}" 

Entonces el código funciona.

Sin embargo, cuando bash utilizar la variable para acceder al diccionario, aparece un error de syntax (creo que se debe a las llaves).

He intentado escapar de los frenillos con:

 var list = "${{c.persons_by_permission["+selected+"]}}" 

Pero da más excepciones de syntax.

¿Algunas ideas?

EDITAR:

Esto no es una cuestión de si puedo usar Python y javascript juntos, es más una cuestión de escapar de los corchetes

Estoy usando pilones, así que si bash:

 alert("${c.persons_by_permission['Documents']}") 

Obtendré los resultados que necesito. El problema es que no puedo encontrar una manera de pasar una variable al javascript en lugar de ‘Documentos’

Estoy haciendo algunas suposiciones (razonables) aquí …

  • Su Python se está ejecutando en su servidor web
  • Su JavaScript se está ejecutando en su cliente

En lo que se refiere a Python, está emitiendo texto. No importa que el navegador lo interprete como HTML, JavaScript o lo que sea. Solo genera un texto y luego lo envía al navegador.

Con HTTP puedes hacer una solicitud y recibir una respuesta. No puede detener una respuesta a mitad de camino para recuperar los datos del cliente.

No puede pasar datos del lado del cliente JS de nuevo al proceso de Python que generó el JS. Ese proceso habrá terminado de ejecutarse.

Tu también puedes:

  • Envíe todos los datos al cliente en primer lugar (y luego seleccione los bits que desea en JS en lugar de en Python)
  • Haga que JavaScript realice una nueva solicitud HTTP al servidor y procese la respuesta en JS (esto se conoce como Ajax y no hay escasez de tutoriales para esto)

No sé qué entorno de ejecución está utilizando, pero estoy casi seguro de que Python y javascript no se ejecutan al mismo tiempo.

${c.persons_by_permission['stringID']} me parece un tipo de directiva de plantilla. Si es así, esto funciona porque la directiva se procesa en el tiempo de procesamiento de la plantilla. Su otra forma es solo una expresión en javascript que se evalúa en javascript a una cadena.