2014-02-25 106 views
0

我在視圖中張貼了一行/多個字段,並且每行的名稱都被編號,例如, 01_field101_field2,02_field1,02_field2等。用戶可以添加和刪除行,所以我不知道發佈了多少行。換句話說,我希望能夠按照行號對帖子鍵和值進行分組。將發佈數據插入到MongoDB中

這裏是什麼被公佈即「項」

[('01_cost', 'value'), ('01_date_end', 'value'), ('01_date_start', 'value'), ('01_hours', 'value'), ('01_resource', 'value'), ('01_task_desc', 'value'), ('02_cost', 'value'), ('02_date_end', 'value'), ('02_date_start', 'value'), ('02_hours', 'value'), ('02_resource', 'value'), ('02_task_desc', 'value'), ('job_description', 'value'), ('job_number', 'value')] 

我試圖循環雖然整理後項目和插入的MongoDB在下面的嵌套格式值的示例:

我目前正在嘗試爲每一行生成一個字典列表,但這似乎並沒有像上面那樣插入到mongo中。這是我現在有(不工作)的代碼。

items = sorted(request.POST.items()) 

project_data = [] 
d = {} 
etid = '01' 

for key, value in items: 
    #get the number from each posted field name 
    tid = re.findall(r'\d+', key) 

    if etid == tid: 
     d.update({key:value}) 
    else: 
     project_data.append(d) 
    etid = tid 

project_id = project.insert(project_data) 
+0

項目是一個集合?你收到任何錯誤?你連接到數據庫了嗎? 'project.find_all()'返回什麼?一旦準備好插入,就發佈'project_data'的內容。 – njzk2

+0

項目是一個Mongo集合。沒有錯誤,我已經將數據插入到Mongo中,因此連接正常。我的挑戰是將帖子值轉換爲可根據需要插入Mongo的格式。字典/列表和pymongo插入處理的正確組合是我認爲我正在尋找的。 – cg1207

+0

我在這裏看到的問題是,project_data是一個列表,並且顯示爲所需插入格式的結構是字典。 – njzk2

回答

0

也許簡單地改變以下幾件事可以工作:

project_data = [] 

=>

project_data = {} 

而且

else: 
    project_data.append(d) 

else: 
    d = {} 
    project_data['row' + str(tid] = d 

這應該讓你更接近你正在尋找的結構。

+0

非常感謝,更接近!我將.put更改爲project_data [str(tid)] = d,因爲我在put時出錯。你讓我走在正確的軌道上謝謝你! – cg1207

+0

是的,對不起,混音,我這幾天每天幾次切換語言。 – njzk2

相關問題