Где ошибка в выводе словаря в чат discord py?
единственное сообщение в канале с ID - 1082311110176280627 должно редактироваться каждые две секунды на переменную carstake вывод должен быть без кавычек и скобок, двоеточие должно остаться! Вывод будет в строчку ниже приведены примеры
carstake={"Автомобили":"кем они заняты"}
@bot.event
async def on_ready():
global a
global carstake
await bot.change_presence(status = discord.Status.online, activity = discord.Activity(name = f'!cavalli', type = discord.ActivityType.playing))
chann = bot.get_channel(1082311110176280627)
await chann.purge()
carmsg = await chann.send("A")
while True:
for key in carstake.items():
await carmsg.edit(content = "{0}: {1}".format(key,value))
time.sleep(2)
При запуске выдает в предпоследней строчке:
await carmsg.edit(content = "{0}: {1}".format(key,value))
NameError: name 'value' is not defined
Должно быть так: сообщение должно редактироваться каждые 2 секунды и писать словарь carstake без скобок и кавычек просто допустим Muxa:rs7 Хочу написать на базе этого Учтите что словарь carstake будет изменяться при работе дискорд бота
import time
t = {'Muxa':'rs7', 'nedetvora':'rs6'}
while True:
for key, value in t.items():
print("{0}: {1}".format(key,value))
time.sleep(2)
Примерный результат редактированного сообщения: Автомобили: и кем они заняты Muxa:rs7 nedetvora:rs6
Ответы (1 шт):
Создадим переменную cars, для примера:
cars = {"Автомобиль 1":"Что-то", "Автомобиль 2": "Что-то"}
Отправляем сообщение в нужный Вам канал:
channel = ...
message = await channel.send("Тест")
Теперь создадим цикл:
while True:
for car in cars.items():
Используя переменную key вытаскиваем значения из cars:
await message.edit(content = f"{car[0]}: {car[1]}")
await asyncio.sleep(2) #советую использовать asyncio.sleep
В python индекс начинается с 0, соответственно:
car[0] — значение из переменной
cars: "Автомобиль 1"
car[1] — значение из переменной
Автомобиль 1: "Что-то"
Полный код:
cars = {"Автомобиль 1":"Что-то", "Автомобиль 2": "Что-то"}
@bot.event
async def on_ready():
channel = ...
message = await channel.send("Тест")
while True:
for car in cars.items():
await message.edit(content = f"{car[0]}: {car[1]}")
await asyncio.sleep(2) #советую использовать asyncio.sleep
