Я хотел бы параметризовать столбцы и мой фрейм данных в функции cursor.execute. Я использую pyms sql, потому что мне нравится тот факт, что я могу назвать параметризованные столбцы. Тем не менее, я до сих пор не знаю, как правильно сказать python, что я имею в виду указанный c фрейм данных, и я хотел бы использовать эти столбцы. Вот последняя часть моего кода (я уже проверил соединение с моей базой данных и т. Д. c. И это работает):
with conn:
cursor = conn.cursor()
cursor.execute("""insert into [dbo].[testdb] (day, revenue) values (%(day)s, %(revenue)s)""", dataframe)
result = cursor.fetchall()
for row in result:
print(list(row))
Я получаю эту ошибку:
ValueError Traceback (most recent call last)
<ipython-input-52-037e289ce76e> in <module>
10 with conn:
11 cursor = conn.cursor()
---> 12 cursor.execute("""insert into [dbo].[testdb] (day, revenue) values (%(day)s, %(revenue)s""", dataframe)
13 result= cursor.fetchall()
14
src\pymssql.pyx in pymssql.Cursor.execute()
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
1477 def __nonzero__(self):
1478 raise ValueError(
-> 1479 f"The truth value of a {type(self).__name__} is ambiguous. "
1480 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
1481 )
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().