Уведомления

Группа в Telegram: @pythonsu

#1 Июль 18, 2009 21:51:42

alphaville
От:
Зарегистрирован: 2009-07-17
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

перегнать Javascript массив в Python

Скачиваю HTML страницу в коде которой задаются Javascript массивы:

var ALLTYPES = new Array();
ALLTYPES['639100'] = new Type('639100','35','35'); // 35
ALLTYPES['639102'] = new Type('639102','80','80'); // 80
ALLTYPES['639111'] = new Type('639111','25','25'); // 25
ALLTYPES['639092'] = new Type('639092','55','55'); // 55
ALLTYPES['639108'] = new Type('639108','30','30'); // 30


var OUTGOESTYPES = new Array();
OUTGOESTYPES.push(new Flight('49654031'));
OUTGOESTYPES[0].addType(cloneType('639100'));
OUTGOESTYPES[0].addType(cloneType('639102'));
OUTGOESTYPES[0].addType(cloneType('639111'));
OUTGOESTYPES[0].addType(cloneType('639092'));

OUTGOESTYPES.push(new Flight('49654032'));
OUTGOESTYPES[1].addType(cloneType('639108'));
OUTGOESTYPES[1].addType(cloneType('639100'));
OUTGOESTYPES[1].addType(cloneType('639102'));
OUTGOESTYPES[1].addType(cloneType('639092'));

OUTGOESTYPES.push(new Flight('49654033'));
OUTGOESTYPES[2].addType(cloneType('639100'));
OUTGOESTYPES[2].addType(cloneType('639102'));
OUTGOESTYPES[2].addType(cloneType('639092'));

OUTGOESTYPES.push(new Flight('49654034'));
OUTGOESTYPES[3].addType(cloneType('639108'));
OUTGOESTYPES[3].addType(cloneType('639100'));
OUTGOESTYPES[3].addType(cloneType('639102'));
OUTGOESTYPES[3].addType(cloneType('639092'));
Есть ли готовые средства, которые могли бы перегнать это в словарь с кортежем? Да ещё желательно и комментарии туда же захватить.



Отредактировано (Июль 18, 2009 21:52:43)

Офлайн

#2 Июль 19, 2009 05:14:53

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

перегнать Javascript массив в Python

import re
Не подойдёт под задачу?



Офлайн

#3 Июль 19, 2009 13:40:59

alphaville
От:
Зарегистрирован: 2009-07-17
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

перегнать Javascript массив в Python

Psixo
import re
Не подойдёт под задачу?
Подойдёт конечно. Но надеялся, что есть готовые решения.



Офлайн

#4 Июль 22, 2009 01:51:40

denz
От:
Зарегистрирован: 2007-01-09
Сообщения: 117
Репутация: +  0  -
Профиль   Отправить e-mail  

перегнать Javascript массив в Python

Зачем re??? просто запользовать json сериализатор (http://www.json.org/json2.js, запускать чз букмарклет например), результат которого потом парсить питоническим парсером.



Офлайн

#5 Июль 22, 2009 07:23:42

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

перегнать Javascript массив в Python

JSON не знает, что такое new Array, .push, .addType и т.д. Здесь поможет только интерпретатор JS. Хотя, если этот код немного модифицировать (убрать new, например), то его можно передать и Python интерпретатору, разумеется в обоих случаях контекст должен быть подготовлен (Array, Type, Flight и все те методы из воздуха не материализуются).

..bw



Офлайн

#6 Июль 22, 2009 10:18:36

denz
От:
Зарегистрирован: 2007-01-09
Сообщения: 117
Репутация: +  0  -
Профиль   Отправить e-mail  

перегнать Javascript массив в Python

bw
JSON не знает, что такое new Array, .push, .addType и т.д.

..bw
Насколько я понял, перегнать надо конечный массив, а не способ его формирования. Все эти addType вроде вызваны, отже както модифицировали массив.
При этом, конечено, в массиве останутся непонятные типы (типа Flight), которые надо будет както питону “объяснить”, и неважно какой путь будет иcпользован.



Отредактировано (Июль 22, 2009 10:26:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version