Интерполяция с помощью forloop в запросе - PullRequest
0 голосов
/ 19 апреля 2019

Я пишу запрос в forloop, и я не знаю, где я ошибаюсь.Короче говоря, мне нужно сделать цикл for и в выражении WHERE указать содержание dict.Кто-нибудь может мне помочь?

  import pyodbc
class Dbconnect:
    playerslist:list
    server:str
    database:str
    username:str
    password:str
    cnxn:str
    cursor :object
    query:str

    def __init__(self, playerslist):
        self.playerslist = playerslist
        return

    def insertdb(self,cursor,players):
        self.cursor = cursor
        for x,y in enumerate(players):
            self.query =(f"SET NOCOUNT ON; INSERT INTO [dbo].[players] (player_id,first_name,last_name,surname,rating) " \
                        f"VALUES({(players[x]['id'])},'{str(players[x]['firstname'])}','{str(players[x]['lastname'])}',"
                         f"'{str(players[x]['surname'])}',{players[x]['rating']})")
            self.cursor.execute(self.query)

На самом деле, когда я делаю код выше, я получаю этот результат без интерполяции>: (* ​​1004 *

INSERT INTO [dbo].[players] ([player_id],[first_name],[last_name],[surname],[rating]) VALUES({players[x]['id']},{players[x]['firstname']},{players[x]['lastname']},{players[x]['surname']},{players[x]['rating']}))

Что я делаю не так?

...