Разобрать переменную JavaScript с помощью Python - PullRequest
5 голосов
/ 11 сентября 2010

Как преобразовать переменную JavaScript (не в формате JSON) в переменную 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"],
}

Ответы [ 2 ]

4 голосов
/ 11 сентября 2010

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

1 голос
/ 11 сентября 2010

Преобразуйте его в 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"]}

Что может быть прочитано модулем Python json, поэтому вопрос в том, откуда вы получаете javascript и почему вы не можете конвертировать его в JSON?

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...