ntbvb
This commit is contained in:
65
Davky/30 Avety.py
Normal file
65
Davky/30 Avety.py
Normal file
@@ -0,0 +1,65 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user