如何加快解析json和写入数据库的速度?

时间:2019-02-07 08:54:18

标签: python json django sqlite

我需要解析200MB的json文件大小,最后我想从sqlite3数据库中的文件中写入数据。我有一个有效的python代码,但大约需要9分钟才能完成任务。

@transaction.atomic
def create_database():
    with open('file.json') as f:
         data = json.load(f)
         cve_items = data['CVE_Items']


        for i in range(len(cve_items)):
            database_object = Data()
            for vendor_data in cve_items[i]['cve']['affects']['vendor']['vendor_data']:
            database_object.vendor_name = vendor_data['vendor_name']


                for description_data in cve_items[i]['cve']['description']['description_data']:
                    database_object.description = description_data['value']


                for product_data in vendor_data['product']['product_data']:
                    database_object.product_name = product_data['product_name']
                    database_object.save()


                    for version_data in product_data['version']['version_data']:
                        if version_data['version_value'] != '-':
                            database_object.versions_set.create(version=version_data['version_value'])

是否可以加快流程?

2 个答案:

答案 0 :(得分:0)

假设所有对象都是独立的,并且可以并行处理,则简单的方法是使用multiprocessing模块。

答案 1 :(得分:0)

假设问题在于文件很大,则可以使用this one之类的流json解析器