尝试一下这个(参见我上面的评论)import pandas as pddata = []for k, v in test['reports'].items(): model_name = k for model in v.items(): _data = {} _data['model'] = model_name _data['id'] = model[0] _data['message'] = model[1]['message'] _data['timestamp'] = model[1]['timestamp'] data.append(_data)df = pd.DataFrame(data)728115 我根本不懂基本编程,几个月前刚刚学习了 python 和 Django,由于迫切需要,我决定创建自己的程序来支持我的部门和团队 程序运行后,我想让它变得更容易对于用户来说,在我环顾四周之后,建议使用bulk_create和ajax JavaScript,绝对不使用JavaScript。在寻找使用bulk_create的方法之后,我发现它效率很低,例如:instance = get_object_or_404(Audit, id=766)item1 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=1)item2 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=2)item3 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=3)item4 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=4)item5 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=5)item6 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=6)item7 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=7)item8 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=8)item9 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=9)item10 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=10)item11 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=11)item12 = get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=12)]AuditItem.objects.bulk_create(audit_mie)除了上面的方法之外还有更简单的方法吗?如果没有,那么我坚持下去,通过在每个项目 id 中创建对象(当前大约为 130),并将其分组为 8 个(当前)bulk_create() 方法。
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
您可以使用列表来保存所有项目,并使用 for 循环来迭代它们。
items = []
audit_mie = []
instance = get_object_or_404(Audit, id=766)
#the range is the starting and ending range, it will count from 1 to 12
for i in range(1,13)
tmp = (get_object_or_404(Item.objects.filter(aspek=instance.aspek_audit).filter(active=True),id=i))
items.append(tmp)
audit_mie.append(AuditItem(audit=instance,item=tmp,kategori=tmp.kategori.kategori))
AuditItem.objects.bulk_create(audit_mie)
items[1]
迭代列表的 for 循环将允许您在需要时使用或您特别想要访问的任何项目(如果需要) 转到特定项目。如果需要,此资源应该可以帮助您理解列表,并且这应该有助于 for 循环。
添加回答
举报
0/150
提交
取消