Okay,
Fazit ich kann eine Matrix oder Dictionary als innere Struktur betrachten und die Daten dann weiterverarbeiten.
Eine Matrix zu erschaffen war relativ einfach und ich denke ich werde diese wählen.
Alternativ (jetzt auch nur zum Verständnis) habe ich probiert anhand eines anderen Bsp ein Dictionary wie oben zu erschaffen, hier der code:
Code: Alles auswählen
Beispielcode
data = [['2782', 'SDS011', '1399', '47.07', '15.45', '2018-08-31 23:59:58', '12.68', '11.38\n'],
['2782', 'SDS011', '1399', '47.07', '15.45', '2018-08-31 12:16:23', '10.25', '7.80\n'],
['2782', 'SDS011', '1399', '47.07', '15.45', '2018-08-31 11:51:42', '9.13', '7.47\n'],
['1747', 'SDS011', '871', '47.03', '15.39', '2018-07-23 19:07:02', '11.97', '10.87\n'],
['1747', 'SDS011', '871', '47.03', '15.39', '2018-07-23 18:04:21', '10.53', '9.57\n'],
['1747', 'SDS011', '871', '47.03', '15.39', '2018-07-23 17:39:45', '11.90', '10.60\n']]
sensors = {} #empty Dictionary named sensors
keys = ["sensor_id","sensor_type","location","lat","lon","timestamp","P1","P2"]
for line_of_values in data:
sensor_id, *values = line_of_values
sensors[sensor_id] = {}
sensors[sensor_id][keys[3]] = values[2]
sensors[sensor_id][keys[4]] = values[3]
sensors[sensor_id][keys[1]] = values[0]
data = "data"
sensors[sensor_id][data] = {}
sensors[sensor_id][data][keys[5]] = values[4]
sensors[sensor_id][data][keys[6]] = float(values[5])
sensors[sensor_id][data][keys[7]] = float(values[6])
print(sensors)
nur dieses mal wollte ich mal eine liste von listen verwenden, ist ja das gleiche wie Zeilen einer csv.
Allerdings stimmt hier irgendetwas mit der For_schleife nicht. Denn der Ausdruck lautet:
{'2782': {'lat': '47.07', 'lon': '15.45', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-08-31 23:59:58', 'P1': 12.68, 'P2': 11.38}}}
{'2782': {'lat': '47.07', 'lon': '15.45', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-08-31 12:16:23', 'P1': 10.25, 'P2': 7.8}}}
{'2782': {'lat': '47.07', 'lon': '15.45', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-08-31 11:51:42', 'P1': 9.13, 'P2': 7.47}}}
{'2782': {'lat': '47.07', 'lon': '15.45', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-08-31 11:51:42', 'P1': 9.13, 'P2': 7.47}}, '1747': {'lat': '47.03', 'lon': '15.39', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-07-23 19:07:02', 'P1': 11.97, 'P2': 10.87}}}
{'2782': {'lat': '47.07', 'lon': '15.45', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-08-31 11:51:42', 'P1': 9.13, 'P2': 7.47}}, '1747': {'lat': '47.03', 'lon': '15.39', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-07-23 18:04:21', 'P1': 10.53, 'P2': 9.57}}}
{'2782': {'lat': '47.07', 'lon': '15.45', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-08-31 11:51:42', 'P1': 9.13, 'P2': 7.47}}, '1747': {'lat': '47.03', 'lon': '15.39', 'sensor_type': 'SDS011', 'data': {'timestamp': '2018-07-23 17:39:45', 'P1': 11.9, 'P2': 10.6}}}
Die rot geschriebenen Einträge sind alle zu viel. Diese roten Einträge sind alle gleich, ich verstehe also, dass in der for-Schleife irgendetwas nicht Stimmt, finde den Fehler aber nicht, da der erste Teil ja stimmt! Ändert sich die sensor_id läuft etwas falsch...