2016-09-08 144 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