在Python中为值列表执行函数
我是Python的初学者,我正在尝试编写一个程序,从Google Sheets获取数据并将其插入MYSQL。我有一个值列表,我想为列表中的每个值执行一个函数,直到最后一个值在Python中为值列表执行函数,python,python-3.x,list,function,Python,Python 3.x,List,Function,我是Python的初学者,我正在尝试编写一个程序,从Google Sheets获取数据并将其插入MYSQL。我有一个值列表,我想为列表中的每个值执行一个函数,直到最后一个值 ##Get range def range_list(): for i in range(1,5): print(i) list = range_list() ##从for列表中获取值 array_data = (array(array(data[list]))) print(a
##Get range
def range_list():
for i in range(1,5):
print(i)
list = range_list()
##从for列表中获取值
array_data = (array(array(data[list])))
print(array_data)
s_symbol = str((array(array_data[0])))
s_name = str((array(array_data[1])))
我想更改列表中的值并执行以下功能
##Insert to DB
def insert_sql() :
sql_insert_statement = """INSERT INTO sheet_data (
symbol,
name )
VALUES ( %s,%s )"""
val = (s_symbol, s_name)
cur.execute(sql_insert_statement, val)
mydb.commit()
print(cur.rowcount, "Record inserted successfully into s_user table")
cur.close()
insert_sql()
我想在这里实现的是,脚本应该从列表中获取值,并且应该执行函数insert\u sql。处理成功后,列表中的值应与前面的值一起更改。此过程应持续到列表中的值
所以对于array\u data=(array(array(data[1])))
insert\u sql()
应该被执行
同样适用于array\u data=(数组(数组(数据[2]))
insert\u sql()
应该被执行
此过程应持续到值5
如何实现这一点?定义另一个函数
def do_something(parameter):
return "This number:" + str(parameter) # for example
def range_list():
for i in range(1,5):
print(do_something(i)) # then call the function
range_list()
我想你可以从GoogleSheet中获得数据,然后你就可以得到数组中每个索引的数据
s_symbol = str((array(array_data[0]))) # It is supposed to have value APPL
s_name = str((array(array_data[1]))) # It is supposed to have value APPLE INC
因此,您只需要在数组_数据上使用for循环,并稍微修改一下insert_sql函数,如下所示:
def insert_sql(s_symbol, s_name):
sql_insert_statement = """INSERT INTO sheet_data (
symbol,
name )
VALUES ( %s,%s )"""
val = (s_symbol, s_name)
cur.execute(sql_insert_statement, val)
mydb.commit()
print(cur.rowcount, "Record inserted successfully into s_user table")
cur.close()
您可以为列表中的每个条目运行此函数
for i in range(len(data)):
array_data = (array(array(data[i]))) # this is supposed to be like [('APPL, APPLE INC.')]
s_symbol = str((array(array_data[0]))) # this is supposed to be like APPL
s_name = str((array(array_data[1]))) # this is supposed to be like APPLE INC.
insert_sql(s_symbol, s_name)
让我知道它是否有任何问题。我对这个(数组(数组(数据[1]))感到困惑,你能解释一下它的输入和模式是什么,你想要什么作为输出吗?例如,您有一个名为A的字符串数组,您希望对A的每个元素执行insert_sql,并将结果生成一个名为B的数组(这只是一个示例,我需要一些说明)。输入从Google Sheets获取,并显示为数组列表[('APPL,APPLE INC.)],[('AMZN,AMAZON INC.)]数组_data=(数组(array(数据[1]))打印[('APPL,APPLE INC.)]因此,s_symbol=str((数组(数组数据[0]))打印APPL,s_symbol=str((数组(数组数据[1]))打印APPLE INC.。同样,(数组(数组(数据[2]))打印[('AMZN,亚马逊INC.)]值1、2、3等都链接到公司的符号及其名称。我希望在(数组(数据[列表])中更改值))每次值改变时,insert_sql函数也应该被执行。太好了!我希望它能正常工作。