Gewusst wie: einfügen von Daten aus Python-Programm, um MySQL-Datenbank in Abständen

Habe ich einen Temperatur sensor (mit DS18B20 Temperatur-sensor) und schrieb das python-Programm zum Auslesen und anzeigen der Temperatur alle 10 Sekunden. Es hat gut funktioniert. Später modifizierte ich den code zum speichern der Aufnahmen jeweils von 10 sec zu einer MySQL-Datenbank. Nun, das problem ist, dass es erfasst UND lädt die Daten auf die Datenbank zum ersten mal liest. Dann bekomme ich eine Fehlermeldung. Also im Grunde, das Programm liest und uploads in die Datenbank, für einmal und dann beendet, nachdem der Fehler.
Bitte sagen Sie mir, wie man dieses Problem beheben!
Vielen Dank!

Hier ist der code:

import os
import time
import MySQLdb
import datetime

i = datetime.datetime.now()

db = MySQLdb.connect(host = "localhost", user = "root", passwd = "bb9125ap", db = "PY1")
cur = db.cursor()

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

temp_sensor = '/sys/bus/w1/devices/28-00042d6745ff/w1_slave'

def temp_raw():
    f = open(temp_sensor,'r')
    lines = f.readlines()
    f.close
    return lines

def read_temp():
    lines = temp_raw()
    while lines[0].strip()[-3:] != 'YES':
          time.sleep(0.2)
          lines = temp_raw()
    temp_output = lines[1].find('t=')
    if temp_output != -1:
          temp_string = lines[1].strip()[temp_output+2:]
          temp_c = float(temp_string) / 1000.0
          return temp_c

    while True:
          print "recording data into database(period = 5s.)....press ctrl+Z to stop!"

          valT = str(read_temp())

          year = str(i.year)
          month = str(i.month)
          day = str(i.day)
          date = day + "-" + month + "-" + year

          hour = str(i.hour)
          minute = str(i.minute)
          second = str(i.second)
          time = hour + ":" + minute + ":" + second

          try:
             cur.execute("""INSERT INTO PY1.DUMP1(temp_c,rec_time,rec_date) VALUES(%s,%s,%s)""",(valT,time,date))
             db.commit()
          except:
             db.rollback()

          time.sleep(10)

     cur.close()
     db.close()

Name ist Programm temp1.py und die Linie 54 nach mein editor ist db.rollback()
Hier ist die Fehlermeldung die ich bekomme,

Traceback (most recent call last):
Datei "temp1.py" , line 54 , in der Zeit.sleep(10)
Attribut:'str' - Objekt hat kein Attribut 'schlafen'

  • welche Fehler sind Sie immer?
  • Traceback (most recent call last): File "temp1.py", line 54, in <module> Zeit.sleep(10) AttributeError: 'str' - Objekt hat kein Attribut 'schlafen'
  • Das oben ist die Fehlermeldung die ich bekomme. Das Programm jedoch speichert der erste Temperatur-Aufnahme zusammen mit Datum-und Zeitangaben an die Datenbank, aber nach, dass es fehlschlägt. Und ich entschuldige mich für das posting der Fehlermeldung!!!!
InformationsquelleAutor uknowho | 2015-04-03
Schreibe einen Kommentar