我试图创建一个填充mysql表的函数。函数接收多个变量作为输入:
Symbol
Var_Date
Stat_Name
Stat_Value
stat\u name的值随着代码的运行而改变,例如enterprise\u value、profit\u margin、ebitda-这些是表中的列名。stat\u值是进入行的数据。
此代码需要一个列名作为变量,三个值作为变量。
我发现前一篇文章看起来很有希望,但到目前为止还没能成功。python中的动态mysql insert语句
我已将我的尝试粘贴到下面的代码:
dbname = "mydb"
var_table = "exc"
symbol = 'ABC'
var_date = '20200629'
stat_name = 'Enterprise_Value'
stat_value = '12345'
def funPopulateTables(symbol, var_date, stat_name, stat_value):
conn = pymysql.connect(host="localhost", user="root", passwd=mypass, db=dbname)
my_cursor = conn.cursor()
query_placeholders = ', '.join(['%s'] * len(stat_value))
query_columns = ', '.join(stat_name)
add_word = ("INSERT INTO {table} " "(Symbol, Date, (%s)) " "VALUES (%s, %s, %s)") %(query_columns, query_placeholders)
data_word = (symbol, var_date, stat_value)
my_cursor.execute(add_word.format(table=var_table), data_word)
conn.commit()
conn.close()
funPopulateTables(symbol, var_date, stat_name, stat_value)
任何帮助都将不胜感激。提前谢谢。
1条答案
按热度按时间7uzetpgm1#
在遵循了khelwood的建议之后,此代码现在开始工作: