У меня есть следующие методы, которые я пытаюсь отлаживать. Моя проблема заключается в том, что когда я вызываю метод insertNewDataInDatabase() из main, он переходит к началу цикла for в методе, но пропускает оператор выполнения базы данных и сразу переходит к методу getInStockItems(), который не имеет смысла меня, потому что я уже вызвал этот метод, а insertNewDataInDatabase не вызвал его.Способы пропуска Python
dataset - это объект-генератор, если он имеет отношение к проблеме.
Любая помощь была бы высоко оценена!
def deleteOldDataFromDatabase(company, c):
c.execute('DELETE FROM company WHERE Company=?',(company,))
def insertNewDataInDatabase(items, c):
for each in items:
c.execute('INSERT INTO ammo VALUES (?, ?, ?, ?, ?, ?)', ("NULL", each["Company"], each["Value"],
each["Product"], each["Price"], each["Url"]))
def getInStockItems(c):
for i in chain(ctd.main()):
deleteOldDataFromDatabase(i[1], c)
for each in i[0]:
yield each
def retrieveDatafromDB(c):
c.execute("SELECT * from company")
return c.fetchall()
def main():
with sqlite3.connect(database) as connection:
c = connection.cursor()
dataset = getInStockItems(c)
insertNewDataInDatabase(dataset, c)
return retrieveDatafromDB(c)
if __name__ == '__main__':
main()
Я следую за ним в отладчике Pycharm. Он попадает на каждую строку в insertNewDataInDatabase(), но вместо перехода к выражению execute он переходит к getInStockItems –