2014-02-25 109 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

相关问题