Этот работает (только одна строка):
c.execute(f"SELECT Firm, Platform, `Sale in million` FROM database WHERE Platform IN ({','.join('?' for _ in list_table)}) ORDER BY Firm", (list_table))
А вот этих нет (2 строчки):
c.execute(f"SELECT Firm, Platform, `Sale in million` FROM database
WHERE Platform IN ({','.join('?' for _ in list_table)}) ORDER BY Firm", (list_table))
c.execute(f"SELECT Firm, Platform, `Sale in million` FROM database"
f"WHERE Platform IN ({','.join('?' for _ in list_table)}) ORDER BY Firm", (list_table))"
c.execute("SELECT Firm, Platform, `Sale in million` FROM database"
f"WHERE Platform IN ({','.join('?' for _ in list_table)}) ORDER BY Firm", (list_table))"
Как вы используете f-строку в нескольких строках?






Проблема возникает из-за по существу недопустимых многострочных линий, а не из-за ошибки ф-струна.. Обратите внимание, что вам нужно только использовать свои переменные внутри скобок {}, а не передавать их отдельно с синтаксисом f-string. Используйте тройные кавычки или обратную косую черту в конце строк, чтобы использовать многострочные строки. Ссылка на документы
test = "this is a
bad multiline " #Raises SyntaxError: EOL while scanning string literal
test = ''' this is a
valid multiline'''
a = "answer"
print(f'''test
is complete. check {a} ''')
Никогда не используйте f-строку для построения SQL-запросов. См., Например, это: github.com/arogozhnikov/python3_with_pleasure/issues/3