Python: при написании вложенного словаря программа резко замедлилась (она все еще работает, но не выводится) - PullRequest
1 голос
/ 19 сентября 2019

У меня есть код Python, который пишет вложенный словарь из таблицы в SQLite.Таблица насчитывает около 40 миллионов строк.Во время отладки это выглядит как работа, и когда я запускаю программу, она обрабатывает 1 миллион строк примерно за 30-60 секунд.Однако после того, как он достиг ~ 90% (36 миллионов строк), он замедлился и почти час не печатает, но также не вызывает ошибок.

Код выглядит примерно так:

selection_query = "Select * From my_table"
cursor = conn.cursor()
Cursor.execute(tbl)

dictionary = {}
Counter_1 = 0
row_nr = 0
for row in Cursor: 
      dict_key_1 = str(row[0])
      dict_key_2 = str(row[1])
      value = row[5]
      Counter_1 += 1
      row_nr += 1
      if dict_key_1 not in dictionary:
          dictionary[dict_key_1]={}

      dictionary[dict_key_1].update({dict_key_2 : value})
      if Counter_1>1000000:
        print(str("{00:.3%}".format(row_nr/4000000)) + str(datetime.now()))
        counter=0

Кто-нибудь знает, почему возникает такая проблема?Почему он вдруг так резко замедлился?

Я с нетерпением жду вашей помощи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...