# -*- coding: utf-8 -*- """ Заполняет doctor_bio_entries из свойств врача в дампе Bitrix, которые export_seed.py по ошибке не читал: EDUCATION(331), AWARDS(330), CONFERENCES(332). Значения хранятся либо простым текстом, либо сериализованным PHP-массивом вида a:2:{s:4:"TEXT";s:N:"...";s:4:"TYPE";s:4:"HTML";} — сначала извлекаем текст, затем режем на отдельные пункты (по
  • или по
    /переводу строки), из каждого пытаемся достать год. """ import sqlread, io, re, html P = 'D:/medkor-local/tmp/dana/db.sql' OUT = io.open('seed_doctor_bio.sql', 'w', encoding='utf-8') def esc(s): if s is None: return "NULL" return "'" + str(s).replace("\\", "\\\\").replace("'", "''") + "'" def extract_text(raw): """Достаёт TEXT из сериализованного PHP-массива Bitrix, если он там есть.""" m = re.search(r's:4:"TEXT";s:\d+:"(.*)";s:4:"TYPE"', raw, re.S) return m.group(1) if m else raw def split_entries(raw): text = extract_text(raw) text = text.replace('\\r\\n', '\n').replace('rn', '\n') # артефакты дампа # снимаем HTML-экранирование ДО поиска тегов — в паре карточек теги были # вставлены как текст (<ul> вместо