ошибка KeyError Python

код

код:

    import vk_api
import random
import time
import datetime

token = ""


vk = vk_api.VkApi(token=token)

vk._auth_token()


now = datetime.datetime.now()
timeA = now.hour




def construct(id,idd,name,money,power,biznes):
    p = {}
    p["name"] = name
    p["money"] = money
    p["messegNumb"] = 0
    p["power"] = power
    p["biznes"] = biznes
    p["idd"] = idd

    data[str(id)] = p
    

    return "normal"


def savebd():
    with open("data.txt", "w") as file:
        for  i in data:#проходимся по data и получаем id в нем
            p = str(i) + " " +str(data[i]["name"]) +" " +str(data[i]["money"])+ " " +str(data[i]["messegNumb"])+ " " +str(data[i]["power"])+ " " +str(data[i]["biznes"])+ " " +str(data[i]["idd"])
            
            file.write(p + '\n') #записываем в data.txt построчно пользователей
        
def loadbd():
    file = open("data.txt","r") 
    datas= file.read()
    datas = datas.splitlines()
    file.close()
    data = {}
    for i in datas:
        i = i.split()
        if len(i)>6:#проверка на полноту данных
            data[str(i[0])] = {}
            data[str(i[0])]["name"] = i[1]
            data[str(i[0])]["money"] = i[2]
            data[str(i[0])]["messegNumb"] = i[3]
            data[str(i[0])]["power"] = i[4]
            data[str(i[0])]["biznes"] = i[5]
            data[str(i[0])]["idd"] = i[6]

    return(data)
ibf = 0

def add_adq(id,ibf):
    ibf = ibf + 1
    data[str(id)]["idd"] = int(data[str(id)]["idd"]) + ibf
    savebd()
    return ibf


data =loadbd()#загружаем в переменную data информацию из функции loadbd и файла data.txt



while True:
    #добавления монет каждый час пользователя
    #часть игровой механики бота
    now = datetime.datetime.now()
    timeB = now.hour

    if timeA<timeB:
        timeA = timeB

        for i in data:
            data[i]["money"] = data[i]["money"] + data[i]["power"]
            print(data)

    elif (timeA>timeB) and (timeB == 0):
        timeA = 0
        for i in data:
            data[i]["money"] = data[i]["money"] + data[i]["power"]


    messages = vk.method("messages.getConversations", {"offset": 0, "count": 20, "filter": "unanswered"})

    if messages["count"] >= 1:
        id = messages["items"][0]["last_message"]["from_id"]
        body = messages["items"][0]["last_message"]["text"]

        #авторизация пользователя в боте
        n = 0
        for i in data:
            print(i)

            if str(id) == i:
                n = 1

        if n == 0:
            user = vk.method("users.get", {"user_ids": id})  # вместо 1 подставляете айди нужного юзера
            uzers = user[0]['first_name'] + ' ' + user[0]['last_name']
            for i in data:
                data[i]["idd"] = data[i]["idd"] + 1
                print(data)
                savebd()
            ibfg = data[int(id)]["idd"]
            construct(id,ibfg,uzers,0,10,'нету')



        #простые команды
        if body.lower() == "привет":

            vk.method("messages.send", {"peer_id": id, "message": "Привет!", "random_id": random.randint(1, 2147483647)})
        elif body.lower() == "кто я?":
            vk.method("messages.send", {"peer_id": id, "message": "ты хороший человек", "random_id": random.randint(1, 2147483647)})
        elif (body.lower() == "профиль" or body.lower() == "стата" or body.lower() == "stats"):
            smg = "id: " + str(data[str(id)]["idd"]) + "\n"
            smg = smg + "Ник: " + str(data[str(id)]["name"]) + "\n"
            smg = smg + "Баланс: " + str(data[str(id)]["money"])+"$"
            smg = smg + "\n" + "Энергия: " + str(data[str(id)]["power"]) + "доход/в час"
            smg = smg + "\n" + "Бизнес: " + str(data[str(id)]["biznes"])
            vk.method("messages.send", {"peer_id": id, "message": smg, "random_id": random.randint(1, 2147483647)})

        else:
            #состовные команды
            bodyone = body.lower().split()
            if (bodyone[0] == "ник") and (len(bodyone)>1):
                data[str(id)]["name"] = bodyone[1] #меняем имя пользователя в боте на новое

                vk.method("messages.send", {"peer_id": id, "message": "ник изменен на " + str(bodyone[1]), "random_id": random.randint(1, 2147483647)})

            else:
                #если бот не нашел команду которую он может выполнить
                vk.method("messages.send", {"peer_id": id, "message": "нет такой команды", "random_id": random.randint(1, 2147483647)})
        savebd()

вывод:

    ibfg = data[int(id)]["idd"].get
       ~~~~^^^^^^^^^

KeyError: 461333923


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