2010-09-11 4 views
5

Comment convertir une variable JavaScript (pas le format JSON) en une variable python?Parse Variable JavaScript avec Python

variables Exemple JavaScript:

{ 
    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

Vous voudrez peut-être dire si cette « variable Javascript » est stocké dans une chaîne Python ou non. –

Répondre

4

Ce format ressemble à l'entrée this question. Essayez d'adapter l'analyseur de pyparsing que j'ai posté là-bas.

1

Convertissez-le en JSON et lisez-le en python.

Je ne comprends vraiment pas quel est le problème?

par exemple. JSON.stringify donne

{"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"]} 

qui peut être lu par le module python JSON, donc la question est d'où vous obtenez javascript et pourquoi ne pouvez pas vous convertir en JSON? Editer: si la source de javascript est totalement hors de votre contrôle, vous pouvez utiliser javascript comme langage de script de ligne de commande, par exemple. spidermonkey (utilisé dans firefox), rhino, V8 (utilisé dans google chrome) ou sur Windows WSH. À l'aide de l'interpréteur javascript, vous pouvez modifier javascript, le stringifier et le traiter avec python si nécessaire.

Il est préférable d'utiliser un interpréteur déjà implémenté et testé que d'en créer un seul.

Vous pouvez également essayer python-spidermonkey

+0

comment puis-je stringifier une variable Javascript en chaîne JSON en Python? Je ne peux pas contrôler le format de la variable source. Il apparaît exactement comme indiqué ci-dessus dans un fichier .html. – jack

+0

@jack, voir la modification. –