#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)