Вопрос про запись в базу Python

D
На сайте с 28.06.2008
Offline
1104
146

У меня есть парсер, который пишет собранные данные в базу. Иногда на странице много данных и там есть пагинация, в этом случае скрипт проходит по всем страницам и пишет базу.

Вот как я это прописал:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
.......
.......собираю данные
#запись в базу 
query1 = ("INSERT INTO ........
mycursor.execute(query1)

#если есть пагинация
if Count > 20:
                for i in range(2, pageCount +1):
                 #запись в базу 
                 query1 = ("INSERT INTO ........
                 mycursor.execute(query1)
.......
.......
.......
#closing the db
mydb.commit()
mydb.close()

Так как это мои первые шаги, я походу накосячил, только сейчас понял, что реально запись в базу происходит на этапе 

mydb.commit()

Может правильнее поднять эту строчку выше и прописать ее два раза сразу после ?

mycursor.execute(query1)

Данные не теряются и пишутся в базу нормально. Но есть опасения что когда страниц пагинации будет много все упрется в какой-то лимит ибо я так понял все это дело собирается в како-то буфер и пишется в базу в самом конце скрипта

S3
На сайте с 29.03.2012
Offline
331
#1
Dram :

У меня есть парсер, который пишет собранные данные в базу. Иногда на странице много данных и там есть пагинация, в этом случае скрипт проходит по всем страницам и пишет базу.

Вот как я это прописал:

Так как это мои первые шаги, я походу накосячил, только сейчас понял, что реально запись в базу происходит на этапе 

Может правильнее поднять эту строчку выше и прописать ее два раза сразу после ?

Данные не теряются и пишутся в базу нормально. Но есть опасения что когда страниц пагинации будет много все упрется в какой-то лимит ибо я так понял все это дело собирается в како-то буфер и пишется в базу в самом конце скрипта

Если ты пишешь в одну таблицу и тебе неважна целостность операций, можешь коммитить после каждой транзакции.

Since by default Connector/Python does not autocommit, it is important to call this method after every transaction that modifies data for tables that use transactional storage engines.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий