2016-09-08 98 views
0

正如标题所示,有没有办法bulk_create列表的列表。就像现在我bulk_create它像 -Django bulk_create列表清单

for i in range(len(x)) 
    arr1 = [] 
    for m in range(len(y)): 
    arr1.append(DataModel(foundation=foundation, date=dates[m], price=price[m])) 
    DataModel.objects.bulk_create(arr1) 

现在这将批量创建,直到x的长度。

能不能做到像这样 -

arr = [] 
for i in range(len(x)) 
    arr1 = [] 
    for m in range(len(y)): 
    arr1.append(DataModel(foundation=foundation, date=dates[m], price=price[m])) 
    arr.append(arr1) 
DataModel.objects.bulk_create(arr) 

如果没有,还有什么可以做,以存储数据更快?

回答

0

将您的对象追加到arr而不是arr1
或者你可以bulk_create之前使平面列表:

import itertools 
arr = list(itertools.chain(*arr)) 
0

试试这个....

arr = [] 
for i in range(len(x)) 
    arr1 = [] 
    for m in range(len(y)): 
    arr1.append(DataModel(foundation=foundation, date=dates[m], price=price[m])) 
    #instead of appending the list, add list together to make one 
    arr = arr + arr1 
DataModel.objects.bulk_create(arr) 

这将由bulk_create()方法

参考生产项目过程中,能够单列表:Python append() vs. + operator on lists, why do these give different results?

+0

这是行得通的,但并没有真正加快速度。 – ThatBird