Как я могу вставить список python в базу данных SQL Server?

#python #sql #sql-server

#python #sql #sql-server

Вопрос:

 #function used to get tickers from the tweets
def getTicker():
    for tweet in tweets:
        if "$" in tweet.text:
            x = tweet.text.split()
            for i in x:
                if i.startswith("$") and i[1].isalpha():
                    tickList.append(i)


#running the ticker function
getTicker()
print(tickList)

        
#connecting to the database
conn = pyodbc.connect(
    "Driver={SQL Server};"
    "Server=SERVERNAME;"
    "Database=DBNAME;"
    "Trusted_Connection=yes;")

#query to put the tickers into the
cursor = conn.cursor()

# print(var_string)
cursor.execute('INSERT INTO master.dbo.TickerTable (TickerName) VALUES (?);', [','.join(tickList)])
conn.commit()
  

Это вставляет список тикеров в таблицу, но все они входят как один элемент, а не по отдельности. Есть ли способ, которым я могу взять список и вставить один за другим?

Комментарии:

1. …. использовать цикл?

Ответ №1:

Вы подключаете все объединенное строковое значение внутри параметризованного запроса : VALUES (?); . Вы можете либо сохранить ту же логику и ввести цикл, который выполняет одну операцию SQL для каждого тикера, либо вы можете настроить форматирование строки, чтобы включить перенос круглых скобок в VALUES ?; per se:

 INSERT INTO master.dbo.TickerTable (TickerName) VALUES (ticker_1),(ticker_2),(ticker_3);
  

Ответ №2:

Для элемента в tickList :

 cursor.execute('INSERT INTO master.dbo.TickerTable (TickerName) VALUES (?);', item)