2010-09-11 26 views
5

¿Cómo puedo convertir una variable de JavaScript (no formato JSON) en una variable de python?Variable de JavaScript de Parse con Python

Ejemplo JavaScript variables:

{ 
    title: "TITLE", 
    name: "NAME", 
    active: false, 
    info: { 
     key1: "value1", 
     dict1: { 
      sub_key1: "sub_value1", 
      sub_key2: "sub_value2", 
     }, 
     dict2: { 
      sub_key3: "sub_value3", 
      sub_key4: "sub_value4", 
      sub_key5: "sub_value5" 
     }, 
    }, 
    list1: ["element1", "element2", "element2"], 
} 
+0

Es posible que desee decir si esa "variable de Javascript" se almacena en una cadena de Python o no. –

Respuesta

4

Este formato se parece a la de entrada en this question. Intenta adaptar el analizador de pyparsing que publiqué allí.

1

Conviértalo en JSON y léalo en python.

Realmente no entiendo cuál es el problema?

p. Ej. JSON.stringify da

{"title":"TITLE","name":"NAME","active":false,"info":{"key1":"value1","dict1":{"sub_key1":"sub_value1","sub_key2":"sub_value2"},"dict2":{"sub_key3":"sub_value3","sub_key4":"sub_value4","sub_key5":"sub_value5"}},"list1":["element1","element2","element2"]} 

que puede ser leído por el módulo json pitón, por lo que pregunta es dónde desde que está recibiendo javascript y por qué no puedes convertirlo a JSON?

Editar: si la fuente de javascript está totalmente fuera de tu control, puedes utilizar javascript como un lenguaje de scripts de línea de comandos, por ej. spidermonkey (utilizado en firefox), rhino, V8 (utilizado en google chrome) o en Windows WSH. Al utilizar el intérprete de JavaScript, puede modificar javascript, aplicarle una cadena y luego procesarlo con Python si es necesario.

Es mejor utilizar el intérprete ya implementado y probado que construir uno solo.

También puede intentar python-spidermonkey

+0

¿cómo puedo stringify una variable de Javascript a cadena JSON en Python? No puedo controlar el formato de la variable de origen. Aparece exactamente como se menciona anteriormente en un archivo .html. – jack

+0

@jack, mira la edición. –