es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener el prefijo antes de la clave en la base de datos.

Entonces estoy usando el sistema de base de datos de Replit y tengo un comando donde si message.content.lower() está en db.keys, entonces responderá con el valor de la clave.

Por ejemplo:

Imagen

Pero quiero que tenga que tener “$” al frente, como $fff.

if message.content.lower() in db.keys():
    info = db[f'{message.content.lower()}']
    await message.channel.send(f'{info}')

Arriba está mi código, también he intentado:

if message.content.lower() in f'${db.keys()}':
    info = db[f'{message.content.lower()}']
    await message.channel.send(f'{info}')

Y:

if message.content.lower() == f'${db.keys()}':
    info = db[f'{message.content.lower()}']
    await message.channel.send(f'{info}')
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que el comando solo responda si el contenido del mensaje tiene “$” al principio, puedes modificar el primer bloque de código de esta manera:

    if message.content.startswith('$') and message.content[1:].lower() in db.keys():
        info = db[f'{message.content[1:].lower()}']
        await message.channel.send(f'{info}')
    

    La condición startswith('$') comprueba si el contenido del mensaje comienza con “$”. La parte message.content[1:].lower() toma el resto del mensaje (sin el “$” al principio) y lo convierte a minúsculas, para que coincida con las claves en la base de datos. Luego, se utiliza la clave modificada para recuperar el valor de la base de datos y enviarlo como respuesta.

Comments are closed.