Стоит задача распарсить 8000 Json файлов, объем всего этого добра ~ 8 гигов. Нужно вытащить нужную информацию и записать в базу. На файл уходит по 2 секунды. То есть на все файлы ~5 часов. Ищу решение как сделать быстрее, учитывая, что i\o biund операция.
Прошу всех неравнодушных и не душных подсказать куда копать!
Вот часть кода
for filename in os.listdir(download_dir):
if filename.endswith('.json'):
with open(os.path.join(download_dir, filename), 'r', encoding='utf-8') as j_f:
try:
data = json.load(j_f)
companies_to_create = []
for d in data:
if isinstance(d, dict):
inn = d.get('inn', '')
kpp = d.get('kpp', '')
name = d.get('name', '')
address_ul = d.get('data', {}).get('СвРегОрг', {}).get('АдрРО', '')
sv_okved = d.get('data', {}).get('СвОКВЭД', {})
if sv_okved:
sv_okved_dop = sv_okved.get('СвОКВЭДДоп', [])
for sv in sv_okved_dop:
if isinstance(sv, dict) and sv.get('КодОКВЭД', '').startswith('96'):
okved = sv.get('КодОКВЭД', '')
if not "Хабаровск" in address_ul:
existing_company = Company.objects.filter(inn=inn).first()
if not existing_company:
company = Company(
name=name,
okved=okved,
inn=inn,
kpp=kpp,
address_ul=address_ul,
)
companies_to_create.append(company)
Company.objects.bulk_create(companies_to_create)