import pandas as pd import json import psycopg2 from sqlalchemy import create_engine # Dati di input input_data = "2024/11/06 07:01:35;|;13.3;-2.4;|;2948.3;6283.5;|;2909.9;6406.1;|;2237.5;9813.8" # Suddividi la stringa in sezioni usando ";|;" come separatore parts = input_data.split(';|;') # Estrai la data/ora e le prime misurazioni timestamp = parts[0] measurements = parts[1] # Estrai i valori di ciascun nodo e formatta i dati come JSON nodes = parts[2:] node_list = [] for i, node_data in enumerate(nodes, start=1): val1, val2 = node_data.split(';') node_dict = { "num": i, "val1": float(val1), "val2": float(val2) } node_list.append(node_dict) # Crea il DataFrame con una colonna JSONB per i nodi df = pd.DataFrame([{ "event_timestamp": pd.to_datetime(timestamp), "battery_level": float(measurements.split(';')[0]), "temperature": float(measurements.split(';')[1]), "nodes_jsonb": json.dumps(node_list) # Converti la lista di dizionari in una stringa JSON }]) # Connessione al database PostgreSQL engine = create_engine('postgresql://asepg:batt1l0@10.211.114.101:5432/asedb') # Carica il DataFrame in una tabella PostgreSQL df.to_sql('dataraw', engine, if_exists='append', index=False) print("Dati caricati con successo nella tabella PostgreSQL!")