ComenzarEmpieza gratis

Crear consultas a partir de parámetros

Ahora vas a implementar una función más potente para consultar la base de datos de hoteles. El objetivo es que esa función reciba argumentos que luego puedan especificarse desde otras partes de tu código.

Más en concreto, tu tarea es definir una función find_hotels() que reciba un único argumento —un diccionario con nombres de columnas y valores— y devuelva una lista de hoteles coincidentes de la base de datos.

Este ejercicio forma parte del curso

Creación de chatbots en Python

Ver curso

Instrucciones del ejercicio

  • Ya tienes creada una lista filters. Únela con las cadenas " WHERE " y " and ".
  • Crea una tupla con los valores del diccionario params.
  • Crea una conexión y un cursor a "hotels.db" y luego ejecuta la query, igual que en el ejercicio anterior.
  • Devuelve los resultados de la consulta.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Define find_hotels()
def find_hotels(params):
    # Create the base query
    query = 'SELECT * FROM hotels'
    # Add filter clauses for each of the parameters
    if len(params) > 0:
        filters = ["{}=?".format(k) for k in params]
        query += " ____ " + " ____ ".join(____)
    # Create the tuple of values
    t = tuple(____)
    
    # Open connection to DB
    conn = sqlite3.connect("____")
    # Create a cursor
    c = ____
    # Execute the query
    ____
    # Return the results
    ____
Editar y ejecutar código