以块为单位处理大型字典响应以进行操作

时间:2018-01-30 04:14:36

标签: python django dictionary

我有一个大的字典响应,然后我用它来创建一个批量对象。由于它是简单的对象创建,但是散装,它需要花费太多时间。我试图通过多处理或线程来做到这一点。所以我可以在数据片段中创建一个批量对象(通过单个文件)并在最后将它们存储在一起。

这是我的功能:

def create_obj(self, resp):
    school_db = Schools.objects.bulk_create(
        [Schools(
            **{k: v for k, v in value.items()
               })for key, value in resp.items()
         ])
    return school_db

我的大字典回复示例 -

response = {
    'A101': {
        'VEG': True,
        'CONTACT': '12345',
        'CLASS': 'SIX',
        'ROLLNO': 'A101',
        'CITY': 'CHANDI',
    },
    'A102': {
        'VEG': True,
        'CONTACT': '54321',
        'CLASS': 'SEVEN',
        'ROLLNO': 'A102',
        'CITY': 'GANGTOK',
    },
}

那么有没有办法将字典拆分成15-20个字块,我可以使用多处理来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

bulk_create接受batch_size参数但我认为你真正想做的是立即返回200响应并在后台任务中执行批量创建,例如。与celery