Использование pyodbc для обновления таблицы SQL Server значениями из DataFrame - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть DataFrame с именем df со следующими столбцами: [SEOText] и [Id]. Я хочу обновить таблицу в SQL Server с именем Categories и установить в ее столбце [SEOText] значения, содержащиеся в df на основе столбца [Id].

dfсодержит значения, взятые из нескольких текстовых файлов, поэтому код выглядит следующим образом:

for filename in os.listdir():
    if os.path.isfile(filename) \
       and filename.endswith(".txt") \
       and not filename in files:
        with open(filename, "r") as file:
            files[filename] = file.read()

for filename, text in files.items():
    L.append(text)
    L2.append(filename)

df = pd.DataFrame(L, columns=['SEOText'])
df['Id'] = L2
df['Id'] = df['Id'].str.replace(r'SeoText_(.+)_', "")
df['Id'] = df['Id'].str.replace(r'.txt',"")

При условии, что моя df будет содержать несколько строк данных. Как мне пройти через него, получить значения из столбцов [SEOText] и [Id] из df и выполнить оператор Update, как показано ниже?

cnxn = pyodbc.connect('DRIVER={SQL Server}; SERVER=site.database.windows.net; DATABASE=dev; uid=x; pwd=x;')
cursor = cnxn.cursor()
cursor.execute("UPDATE Categories SET SEOText = ? WHERE Id = ?", df['SEOText'], df['Id'])
cnxn.commit()

РЕДАКТИРОВАТЬ: Обратите внимание, что в операторе Update я указал df ['SEOText'], df ['Id'] просто для более ясного представления о том, что я пытаюсь сделать. Я знаю, что это не так, как это должно быть использовано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...