首页 > 解决方案 > 如何使用 django 在没有循环的情况下迭代字典数组?

问题描述

这是我的场景。我在 django 的字典数组中有 30 条记录。所以,我试图迭代它工作正常。但大约需要一分钟。如何减少迭代时间。我尝试了地图功能,但它不起作用。如何解决这个问题,我将分享我的示例代码。

示例代码

def find_places():
    data = [{'a':1},{'a':2},{'a':3},{'a':4},{'a':5},{'a':6},{'a':7},{'a':8}]
    places =[]
    for p in range(1,len(data)):
        a = p.a
        try:
            s1 = sample.object.filter(a=a)
        except:
            s1 = sample(a=a)
            s1.save()
        plac={id:s1.id,
                a:s1.a}
        places.append(plac)
    return places

find_places()

我需要一种有效的方法来迭代python中的对象数组而无需循环。

标签: pythondjango

解决方案


你可以试试这个:

您可以创建一个列表并立即保存,试试这个:

def find_places():
    data = [{'a':1},{'a':2},{'a':3},{'a':4},{'a':5},{'a':6},{'a':7},{'a':8}]
    places =[]
    lst = []
    for p in data:
        a = p['a']
        lst.append(a)  # store it at once

然后尝试将其存储到数据库中。您可以搜索:如何将列表存储到 Django 中的模型中。

我只对代码循环进行了更改,如果数据库端也失败了,你可以告诉我。


推荐阅读