我需要解析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'])
是否可以加快流程?
答案 0 :(得分:0)
假设所有对象都是独立的,并且可以并行处理,则简单的方法是使用multiprocessing模块。
答案 1 :(得分:0)
假设问题在于文件很大,则可以使用this one之类的流json解析器