netgescon-master/scripts/Script fatti per prova e per ora sospesi/conta_condomini_nuovo.py

60 lines
1.6 KiB
Python

import json
import pymysql
import os
import re
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
CONFIG_PATH = os.path.join(SCRIPT_DIR, "agent_config.json")
with open(CONFIG_PATH) as f:
config = json.load(f)
MYSQL_HOST = config.get("MySQLHost", "localhost")
MYSQL_USER = config.get("MySQLUser", "user")
MYSQL_PASSWORD = config.get("MySQLPassword", "password")
MYSQL_DB = config.get("MySQLDatabase", "netgescon")
conn = pymysql.connect(
host=MYSQL_HOST,
user=MYSQL_USER,
password=MYSQL_PASSWORD,
db=MYSQL_DB,
charset='utf8mb4'
)
cur = conn.cursor()
cur.execute("SHOW TABLES;")
tutte = [r[0] for r in cur.fetchall()]
totale = 0
trovate = []
for tab in tutte:
try:
cur.execute(f"SHOW COLUMNS FROM `{tab}`;")
colonne = [r[0].lower() for r in cur.fetchall()]
if "codice" in colonne and "nome" in colonne:
trovate.append(tab)
except Exception:
continue
if not trovate:
print("Nessuna tabella con colonne 'codice' e 'nome' trovata.")
else:
for tab in trovate:
cur.execute(f"SELECT COUNT(*) FROM `{tab}`;")
n = cur.fetchone()[0]
print(f"\nTabella: {tab} ({n} condomini)")
if n > 0:
cur.execute(f"SELECT * FROM `{tab}` LIMIT 5;")
rows = cur.fetchall()
cur.execute(f"SHOW COLUMNS FROM `{tab}`;")
colonne = [r[0] for r in cur.fetchall()]
for r in rows:
dati = {col: val for col, val in zip(colonne, r)}
print(" ", dati)
totale += n
print(f"\nTotale condomini in tutte le tabelle trovate: {totale}")
cur.close()
conn.close()