import mysql.connector def parse_a_vety_bulk(): db_config = { 'host': '192.168.1.76', 'port': 3307, 'user': 'root', 'password': 'Vlado9674+', 'database': 'ordinace' } conn = mysql.connector.connect(**db_config) cursor = conn.cursor(dictionary=True) # 1. Načtení všech 'A' vět z archivu print("Načítám věty typu A z databáze...") cursor.execute("SELECT id_davky, obsah_radku FROM vety WHERE typ_vety = 'A'") raw_records = cursor.fetchall() if not raw_records: print("Nenalezeny žádné věty typu A ke zpracování.") return # 2. Příprava seznamu dat pro hromadný insert data_to_insert = [] for row in raw_records: s = row['obsah_radku'] # Extrakce polí podle tvé specifikace (pozice + délka) # Slicing v Pythonu: s[start : start + delka] tuple_data = ( row['id_davky'], # id_davky s[13:16].strip(), # HCPO (Pojišťovna) s[17:25].strip(), # HICO (IČP) s[31:34].strip(), # HODB (Odbornost) s[1:8].strip(), # HCID (Číslo dokladu) s[34:44].strip(), # HROD (Číslo pojištěnce / RČ) s[44:49].strip() # HZDG (Diagnóza) ) data_to_insert.append(tuple_data) # 3. Hromadné vložení (Insert Many) sql = """ INSERT INTO doklady (id_davky, pojistovna, icp, odbornost, cislo_poradove, rodne_cislo, diagnoza) VALUES (%s, %s, %s, %s, %s, %s, %s) """ try: print(f"Vkládám {len(data_to_insert)} záznamů do tabulky doklady...") cursor.executemany(sql, data_to_insert) conn.commit() print("Hromadný import dokladů byl úspěšně dokončen.") except mysql.connector.Error as err: print(f"Chyba při hromadném vkládání: {err}") conn.rollback() finally: cursor.close() conn.close() if __name__ == "__main__": parse_a_vety_bulk()