Форум сайта python.su
В такой формулировке найти где беда - очень затруднительно.
“Возвращаются на 5-й раз” - а что приходит первых 4?
Офлайн
Ferroman
ну вот такого вида код:
for category in cat_to_create:
current_category_name = unicode(category[1])
sys.stdout.write("Получаю товары для категории...")
items_in_category = get_by_category(base, category[1])
all_uncats = get_uncats(items_in_category)
current_category_url = create_category(current_category_name, cookies, headers)
for uncat in all_uncats:
sys.stdout.write("Будет создана подкатегория: " + uncat)
current_uncat_url = create_undercategory(current_category_url, uncat, cookies, headers)
Офлайн
“Будет создана подкатегория” не выводится, будто вообще цикл игнорируетсяЭто возможно при пустом all_uncats.
Офлайн
Ferroman
в том-то и дело, что он не пустой. Если закомментить строчку создания категории - то в 90% случаев при выводе пишутся верные названия подкатегорий. Почему не в 100% - тоже загадка. Может, хрен с ним, с потоком, и создавать так? Или я слепой и чего-то не вижу?
Офлайн
дебаггер спасёт отца русской демократии.
Офлайн
Ferroman
Pdb? Его там очень сложно присобачить…
Короче, вообще какая-то мистика.
all_uncats = get_uncats(items_in_category)
sys.stdout.write("Будет создано " + str(len(all_uncats)) + " подкатегорий")
#current_category_url = create_category(current_category_name, cookies, headers)
Отредактировано (Ноя. 26, 2009 00:03:18)
Офлайн
а мы как поймём что творится у вас в ф-циях?)
Офлайн
Чудес не бывает.
А ты не забыл где-то в коде, что при присвоении одного списка другому, на самом деле создаётся только ссылка на предыдущий, а не его реальная копия? Может в функции создания категории используется тот же список.
Офлайн
Вот ссылка на обрывок кода: http://pastebin.com/d79513879
Да-да, я знаю, что он сырой и его еще можно упросить и убрать весь этот индусский код. Но все это прекрасно работало в предыдущей версии заливатора, почему не работает в потоке - я понять не могу.
Офлайн
Что-то код малочитабельный при атком кодировании кирилицы. Как в этом разбираться?
Офлайн