Помогите отследить словарь в Пайтоне

я учу пайтон и для опыта делаю свой небольшой проект. Суть проекта заключается запарсить json файл по ссылке и получить словарь, данный словарь каждый раз обновляется. И я хочу сохранять его в списке по типу [Словарь 1] -> [Словарь 2, Словарь 1] -> [Словарь 3, Словарь 2, Словарь 1] и так далее

from main import get_last_data
import time

data_list = []
while True:
    get_last_data()
    data_list.append((get_last_data()))


print(list((data_list)))
time.sleep(1)

У меня выводит:

   [{'92207140241': 2}]
   [{'92207140241': 2}, {'92207140241': 2}]
   [{'92207140241': 2}, {'92207140241': 2}, {'92207140241': 2}]

А должен:

   [{'92207140241': 2}]
   [{'92207140242': 4}, {'92207140241': 2}]
   [{'92207140243': 1}, {'92207140242': 4}, {'92207140241': 2}]

Чуток переписал код:

   from main import get_last_data
   import time

   data_list = ['start']

   while True:
   get_last_data()
   if get_last_data() != data_list[0]:
       data_list.insert(0, get_last_data())

   else:
      continue

   print(data_list)
   time.sleep(5)

Главная проблема в том что в цикле когда вызывает функцию переменная не меняется, и из за этого выводит один и те же данные


Ответы (2 шт):

Автор решения: n1tr0xs

Вы добавляете в конец списка, а вам нужно в начало.

from main import get_last_data
import time

data_list = []
while True:
   # get_last_data() # зачем вы вызываете эту функцию без сохранения результата ее работы в переменную ?
    new_data = get_last_data()
    if new_data not in data_list:
        data_list = [new_data] + data_list # 1 вариант
        data_list.insert(0, new_data) # 2 вариант

print(data_list) # list() не нужен, потому что data_list и без того список
time.sleep(1)
→ Ссылка
Автор решения: on paper

Разобрался наконец:

data_list = []
last_number = int(*get_last_data().keys()) 

while True:
    if last_number == int(*get_last_data().keys()):
        data_list.insert(0, get_last_data())
        last_number = int(*get_last_data().keys()) + 1
    else:
        continue

    print(data_list)

Результат:

[{'92207150093': 4}]
[{'92207150094': 2}, {'92207150093': 4}]
→ Ссылка