Преобразование вывода fetchall pymysql в int..?
Возникла проблема, связанная с получением данных из mysql. Мне необходимо, чтобы моя программа(бот) получала списки тех, кто владеет ботом. Но моя программа не может получить данные из бд. Я подразумеваю, что проблема в словаре, который выводит непонятное для моей программы. Надеюсь, что вы мне поможете исправить данное недоразумение
Код:
import pymysql.cursors
import discord
from discord.ext import commands
db = pymysql.connect(host='**************',
port=25*****,
user='***',
password='**************',
database='*******')
with db.cursor() as cursor:
# Read a single record
sql = ("select `id` from `owners`")
cursor.execute(sql)
result = cursor.fetchall() #<----- Получение данных из курсора в переменную
class owner(commands.Cog, name="owner"):
def __init__(self, bot):
self.bot = bot
@commands.command(name="shutdown")
async def shutdown(self, context, message):
if context.message.author.id == result: #<--------- Тут идет получение данных из переменной
embed = discord.Embed(
description="Выключаюсь! :wave:",
color=0x42F56C
)
await context.send(embed=embed)
await self.bot.close()
await message.channel.send('ок')
else:
embed = discord.Embed(
title="Ошибка!",
description="У вас недостаточно прав для выполнения данной команды",
color=0xE02B2B
)
await context.send(embed=embed)
Заранее спасибо!
P.S - Я новичок, и немного не понимаю как это преобразовать. Я пробовал, но к сожалению я смог получить только один id владельца, вместо двух
Ответы (1 шт):
Если вы берете все значения которые лежат у вас в БД, то вы получаете на выходе кортеж (вот так он будет выглядеть, если вы с БД возьмете больше чем одно значение рядка: [[15448481818, 1881811818, 1518118181], [19191911, 619198198189, 189191981],] если только одне, то [[19191191, 14811816],]) что бы достать с него определенное значения ва надо взять ячейку:
for i in range(len(result)):
if context.message.author.id == result[i]['id']:
...