在Python中为值列表执行函数

在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

我是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(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函数也应该被执行。太好了!我希望它能正常工作。