Ich habe ein Programm für mein Raspi geschrieben (um Python zu erlernen)

Mein Programm schreibt Automatisch von einen der 5 Sensoren die Werte inkl. Zeit und Datum in eine Textdatei.
Mit einem seperaten Programm (da ich später auf Client / Server gehen will) kann ich die Textdatei öffnen und in einer for schleife dies in eine MySQL Datenbank übertragen.
Leider habe ich jetzt die DB ein wenig Optimiert (Menge an Daten) und möchte noch in der for schleife den Fremdschlüssel erfragen.
Hier ist mal das Programm für die Übertragung zum SQL Server:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys, csv
from time import *
from bin import database
db = database()
fdate = strftime("%Y-%m-%d")
ftime = strftime("%H:%M:%S")
timewr = (fdate +"_"+ ftime +"_"+"temp-data.tlist")
def sensidr():
query = "SELECT idsensor FROM sensor WHERE sensorid = '%s';" % (sensid);
cmdr = db.query(query)
for id in cmdr:
idr = '%s' % id['idsensor']
return idr
if os.path.isfile('temp-data-transfer.txt'):
data = csv.reader(open('temp-data-transfer.txt', 'r'), delimiter=';')
for row in data:
sdate=row[0]
stime=row[1]
sensid=row[2]
sdata=row[3]
projectid="1"
print sdate, stime, sensid, sdata, projectid, sensidr
query = "INSERT INTO `sensdata` (sdate, stime, sdata, project_idproject, sensor_idsensor) VALUES ('%s', '%s', '%s', '%s', '%s');" % (sdate, stime, sdata, projectid, sensidr);
db.insert(query)
os.system("mv temp-data-transfer.txt messdata/"+timewr)
else:
print "fehler bei der Uebertragung zu SQL"
exit(0)
Bzw. bekomme eine solche Meldung:
Code: Alles auswählen
2013-12-24 00:35:03 28-0000050a6a69 17.937 1 <function sensidr at 0x1244de8>
Code: Alles auswählen
sensid="28-0000050a6a69"
query = "SELECT idsensor FROM sensor WHERE sensorid = '%s';" % (sensid);
cmdr = db.query(query)
for id in cmdr:
idr = '%s' % id['idsensor']
print idr
Code: Alles auswählen
1
Code: Alles auswählen
INSERT INTO `sensdata` (sdate, stime, sdata, project_idproject, sensor_idsensor) VALUES ('2013-12-17', '22:05:03', '19.812', '1', (select idsensor from sensor where sensorid ='28-0000050a6a69'));
Lieber wäre aber zu Wissen ob es überhaupt geht aus einer for schleife einen Wert in die Funktion einzutragen?
Vielen Dank schonmal für die Hilfe.

PS.: Ich bin für Fairplay und möchte nur sagen das ich dies im Linux-forum.de auch gepostet habe.
Bis jetzt aber leider keine Antwort bekommen habe
