2010-09-11 2 views
5

Как преобразовать переменную JavaScript (а не формат JSON) в переменную python?Переменная JavaScript-переменная с Python

Пример 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

Вы можете сказать, если что «Java-переменная» хранится в виде строки Python или нет. –

ответ

4

Этот формат выглядит так же, как и вход в this question. Попробуйте адаптировать синтаксический анализатор, который я разместил там.

1

Преобразуйте его в JSON и прочитайте в python.

Я действительно не понимаю, в чем проблема?

например. JSON.stringify дает

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

который может быть прочитан модулем JSon питона, поэтому вопрос в том, откуда вы получаете яваскрипт и почему вы не можете преобразовать его в формат JSON?

Редактировать: если источник javascript, если он полностью вышел из-под контроля, вы можете использовать javascript в качестве языка сценариев командной строки, например. spidermonkey (используется в firefox), rhino, V8 (используется в Google Chrome) или на окнах WSH. Используя javascript-интерпретатор, вы можете модифицировать javascript, строчить его и затем обрабатывать с помощью python, если это необходимо.

Лучше, чтобы пользователь уже реализовал и испытал интерпретатор, а не сам.

Вы также можете попробовать python-spidermonkey

+0

Как я могу подстроить переменную Javascript для строки JSON в Python? Я не могу контролировать формат исходной переменной. Он отображается точно так, как указано выше в файле .html. – jack

+0

@jack, см. Редактирование. –

Смежные вопросы