initial
This commit is contained in:
45
transfrom.py
Executable file
45
transfrom.py
Executable file
@@ -0,0 +1,45 @@
|
||||
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!")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user