Найти - Пользователи
Полная версия: Универсальный заливатор
Начало » Python для экспертов » Универсальный заливатор
1 2 3 4 5
Ferroman
В такой формулировке найти где беда - очень затруднительно.
“Возвращаются на 5-й раз” - а что приходит первых 4?
Enchantner
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)
Так вот, мало того, что подкатегории не создаются, так еще и надпись “Будет создана подкатегория” не выводится, будто вообще цикл игнорируется. Код создания как категорий, так и подкатегорий - рабочий. URL после создания категории тоже возвращается верный.
Ferroman
“Будет создана подкатегория” не выводится, будто вообще цикл игнорируется
Это возможно при пустом all_uncats.
Enchantner
Ferroman
в том-то и дело, что он не пустой. Если закомментить строчку создания категории - то в 90% случаев при выводе пишутся верные названия подкатегорий. Почему не в 100% - тоже загадка. Может, хрен с ним, с потоком, и создавать так? Или я слепой и чего-то не вижу?
Ferroman
дебаггер спасёт отца русской демократии.
Enchantner
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)
Я полностью переписал алгоритм возвращения списка подкатегорий, так что all_uncats в принципе не может быть пустым. Однако вот какая хрень - стоит только раскомментировать строку создания категории после возвращения списка подкатегорий - и выводится, что их будет создано 0. Если же она закомментирована - то пишется, что одна (это правильное число) подкатегория все-таки будет создана. Я не понимаю.
slav0nic
а мы как поймём что творится у вас в ф-циях?)
Ferroman
Чудес не бывает.
А ты не забыл где-то в коде, что при присвоении одного списка другому, на самом деле создаётся только ссылка на предыдущий, а не его реальная копия? Может в функции создания категории используется тот же список.
Enchantner
Вот ссылка на обрывок кода: http://pastebin.com/d79513879
Да-да, я знаю, что он сырой и его еще можно упросить и убрать весь этот индусский код. Но все это прекрасно работало в предыдущей версии заливатора, почему не работает в потоке - я понять не могу.
Ferroman
Что-то код малочитабельный при атком кодировании кирилицы. Как в этом разбираться?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB