Size: a a a

2020 November 11

R

Roman in Python
Legioner
Такой вопрос, парсю сайт и записываю данные в базу MySQL. Как лучше делать, подготовить словарь со всеми данными и потом пройтись циклом и записать в базу, или сразу писать данные базу, как только получаю их?
представь, что спарсил уже 99%, и внезапно ловишь плохую ошибку. А коммит в БД не сделал. Всё сначала.
+ ещё аргумент: если словарь растет, растет и потребление ресурсов. Понял?
источник

R

Roman in Python
hitorr1ii
Всем привет, те люди кто в pycharm работают не знают как открывать сайдбар клавишами, нашёл сочетание shift+esc, но она только закрывает, а как открывать (не считая кликом мыши)
ещё норм идея купить монитор побольше. Тогда сайдбар не нужно  сворачивать 😁
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in Python
Посоветуйте пожалуйста годные туториалы по python-telegram-bot

Доку не советовать, спасибо.
источник

L

Legioner in Python
Roman
представь, что спарсил уже 99%, и внезапно ловишь плохую ошибку. А коммит в БД не сделал. Всё сначала.
+ ещё аргумент: если словарь растет, растет и потребление ресурсов. Понял?
Понял, лучше сразу писать)
источник

R

Roman in Python
Legioner
Понял, лучше сразу писать)
Я б тебе посоветовал писать не по 1 строчке, а как бы порциями. Делай список по 100 строк (словарей например), по 100 штук пиши в БД. Ну и как-то записывай последнюю позицию, чтоб на случай вылета не начинать вообще сначала.
Если что, пиши.
источник

R

Roman in Python
🚲 Oleh Kopyl UI/UX designer
Посоветуйте пожалуйста годные туториалы по python-telegram-bot

Доку не советовать, спасибо.
продукт дезигнер и бэкенд девелопер не умеет в доку телебот. Ля как красива.
источник

L

Legioner in Python
Roman
Я б тебе посоветовал писать не по 1 строчке, а как бы порциями. Делай список по 100 строк (словарей например), по 100 штук пиши в БД. Ну и как-то записывай последнюю позицию, чтоб на случай вылета не начинать вообще сначала.
Если что, пиши.
Спасибо, буду двигаться в этом направлении.
источник

4

4rt in Python
Legioner
Спасибо, буду двигаться в этом направлении.
Глянь ещё что такое "мемоизация" и юзай генераторы
источник

AD

Almost Done in Python
works like this
источник

T

Taya in Python
Как можно использовать defaultdict в условной конструкции, или с lambda? Например, если d["id"] == '134'] не существует:

kwargs=[d for d in self.parentBody[0]['documents'] if d["id"] == '134'] или
kwargs= (list(filter(lambda x: x['id'] == "134", self.parentBody[0]['documents'])))
источник

P

P U N K in Python
Taya
Как можно использовать defaultdict в условной конструкции, или с lambda? Например, если d["id"] == '134'] не существует:

kwargs=[d for d in self.parentBody[0]['documents'] if d["id"] == '134'] или
kwargs= (list(filter(lambda x: x['id'] == "134", self.parentBody[0]['documents'])))
lambda: 0
источник

T

Taya in Python
P U N K
lambda: 0
так всё равно indexError
источник

P

P U N K in Python
Taya
так всё равно indexError
А если lambda в lambde?😃
источник

PA

Pavel Aksenov in Python
Taya
Как можно использовать defaultdict в условной конструкции, или с lambda? Например, если d["id"] == '134'] не существует:

kwargs=[d for d in self.parentBody[0]['documents'] if d["id"] == '134'] или
kwargs= (list(filter(lambda x: x['id'] == "134", self.parentBody[0]['documents'])))
Как мне кажется, лучше это сделать в несколько строк, с обычнм for  и без list comprehension.
источник

PA

Pavel Aksenov in Python
а d это всегда дикт?
источник

T

Taya in Python
но как именно? если заменить self.parentBody[0]['documents'] на defaultdict, то indexError
источник

T

Taya in Python
Pavel Aksenov
а d это всегда дикт?
d да, из списка словарей
источник

PA

Pavel Aksenov in Python
чтобы индекс еррора не было, при условии что d это словарь, можно d.get('id') == '123'
источник

T

Taya in Python
так тоже нет, т.е. нет именно '123'
источник

PA

Pavel Aksenov in Python
Значит я задачу не понял)
источник