获取列表的迭代元素并将其附加到另一个列表

时间:2020-07-14 14:09:37

标签: python

我想创建一个列表,该列表的元素来自Flask的用户输入。这是我执行此操作的代码:

    data = pd.read_csv('data_file_path.csv')
    data = list(data.columns)

此行的输出是:

['A1', 'A2', 'A3', 'A4', 'A5']

我正在使用Flask来获取用户输入(一次一个元素作为下拉输入):

columns = [request.form.get('columns')]

最后,我创建了一个空列表,并将用户元素附加到该列表中,下面是代码:

    list1 = []

    try:
        for line in columns:
            list1.append(line)
        print(list1)

    except TypeError:
        pass

完整的代码是:

    data = pd.read_csv('File_Path.csv')
    data = list(data.columns)
    columns = [request.form.get('columns')]

    list1 = []

    try:
        for line in columns:
            list1.append(line)
        print(list1)

    except TypeError:
        pass

但是,我得到的输出像波纹管一样,每当我提供新输入时,以前的输入都会被删除。 (当我从下拉菜单中选择A1时)

Finaloutput: ['A1']

我想创建一个这样的列表(当用户从​​下拉列表中选择列并将其添加到最终列表时追加),这意味着如果用户从下拉列表中选择了元素,则将其添加到列表中,但不会删除上一个元素。这样(如果我从用户输入中选择A1到A5)

['A1', 'A2', 'A3', 'A4', 'A5']

1 个答案:

答案 0 :(得分:0)

您应在api端点外部声明数组。否则,数组将在每个api调用中清空:

list1 = []
@app.get("/")
def add_item(request):
    columns = [request.form.get('columns')]
    try:
        for line in columns:
            list1.append(line)
        print(list1)

    except TypeError:
        pass

在上面的代码中,我声明list1为全局变量,因此我附加到其上的项目将按时保留。

注意list1中的数据将仅保留在内存中,当您停止服务时,这些数据将丢失。如果即使在停止服务时仍要保留数据,则需要将其保存在数据库中。

相关问题