Короткий ответ: вам нужно выполнить обратный вызов следующим образом:
function callback(response) {
// Here you can do what ever you want with the response object.
console.log(response);
}
$.ajax({
url: "...",
success: callback
});
Любой итератор является «одним выстрелом» в том смысле, что когда он полностью выполнен, он становится пустым и больше не может использоваться. Когда вы вызвали logging.debug( list(e) )
, вы использовали его в функции list () и так истощили его. Таким образом, следующая попытка использовать его в цикле for
ничего не дает.
С измененным кодом, когда enumerate () вызывается снова после этого отладки, поведение скрипта изменяется - оно вызывает IndexError на y[int(k)].append( v )
; Я не исправлю это для вас, но это достаточно, чтобы начало цикла выполнялось.
эта строка:
logging.debug( list(e) )
потребляет итератор, поэтому, когда вы здесь:
for k, v in e:
# ...
e
уже исчерпан.
Поскольку enumerate
возвращает итератор:
>>> e = enumerate(range(4))
>>> list(e)
[(0, 0), (1, 1), (2, 2), (3, 3)]
>>> list(e)
[]
Как только конец достигнут, e.next()
вызывает исключение StopIteration
:
>>> e.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
Таким образом, вы не можете повторить дважды по e
. Вам нужно будет заново создать итератор.