Разбиение на части символов %s при методе join

def insert_mysql(table: str, column_values: dict):
    columns = ', '.join(column_values.keys())
    values = tuple(column_values.values())
    placeholders = ", ".join("%s" * len(column_values.keys()))
    sql = (f"INSERT INTO {table} ({columns}) VALUES ({placeholders})")
        
    return (sql, values)

Получаю на выходе:

INSERT INTO `users` (name, age) VALUES (%, s, %, s)

А должен:

INSERT INTO `users` (name, age) VALUES (%s, %s)

Ответы (1 шт):

Автор решения: Qwertiy
placeholders = ", ".join("%s" * len(column_values.keys()))
placeholders = ", ".join(["%s"] * len(column_values.keys()))

https://ideone.com/LTrYjt

print(", ".join("%s" * 2))
print(", ".join(["%s"] * 2))
%, s, %, s
%s, %s
→ Ссылка