N
N
negeevmaksim2021-06-17 12:45:01
Python
negeevmaksim, 2021-06-17 12:45:01

It gives an error, I don’t know what to do (I’m creating a Discord bot on economics), what should I do?

My code:

import discord
from discord.ext import commands
import sqlite3
from config import settings
client = commands.Bot(command_prefix = settings['PREFIX'])
client.remove_command('help')

connection = sqlite3.connect('server.db')
cursor = connection.cursor()

@client.event
async def on_ready():
  cursor.execute("""CREATE TABLE IF NOT EXISTS users (
    name TEXT,
    id  INT,
    cash BIGINT,
    rep INT,
    lvl INT
  )""")

  for guild in client.guilds:
    for member in guild.members:
      if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}").fetchone() is None:
        cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 0, 0, 1)")
      else:
        pass

  connection.commit()
  print('Bot Connected')

@client.event
async def on_member_join(member):
  if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}").fetchone() is None:
    cursor.execute(f"INSERT INFO users VALUES ('{member}', {member.id}, 0, 0, 1)")
    connection.commit()
  else:
    pass

@client.command(aliases = ['balance', 'cash'])
async def __balance(ctx, member: discord.Member = None):
  if member is None:
    await ctx.send(embed = discord.Embed(
      description =f"""Баланс **{ctx.author}** составляет **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} :leaves:**"""
    ))
  else:
    await ctx.send(embed = discord.Embed(
      description = f"""Баланс **{member}** составляет **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(member.id)).fetchone()[0]} :leaves:**"""
    ))	

client.run(settings['TOKEN'])


The error occurs after entering the !balance command:

Ignoring exception in command __balance:
Traceback (most recent call last):
  File "C:\Users\дом\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Users\дом\Desktop\PsBotEconomic\bot.py", line 43, in __balance
    description =(f"""Баланс **{ctx.author}** составляет **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} :leaves:**""")
TypeError: 'NoneType' object is not subscriptable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\дом\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\дом\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\дом\AppData\Roaming\Python\Python39\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'NoneType' object is not subscriptable

Answer the question

In order to leave comments, you need to log in

1 answer(s)
O
o5a, 2021-06-17
@o5a

The error indicates that the query from the database does not return data. Those. for this user id was not found in the table.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question