2017-06-28 11 views
0

私が作成したカレンダーウィジェットの結果をクエリに入力しようとしています。カレンダーウィジェットは完全に機能し、メッセージボックスにyesと答えた場合、weeklyrpt.pyは完全に機能します。応答がないと、日付が選択されて個別に解析されるカレンダーウィジェットが開きますが、結果をクエリに統合する方法はわかりません。ウィジェットの結果を使用したクエリーの埋め込みPython 3x tkinter

rundate機能は、私は、クエリのために取得しようとしていたデータは、私はpick.pyウィジェットから結果を得る助けが必要な「rundate」

#Query permits made effective since rundate 

query = '''select `NPDES_ID`, `EffectiveDate`, `FacilityName`, `StateFacilityID`, `City`, `CountyName` 
     from Permits 
     where `EffectiveDate` >= ? 
     order by `NPDES_ID`''' 

#for each row in result of query 
for row in cur.execute(query, (rundate)): 
try: 
    d= row[1].strftime('%m/%d/%Y') 
except: 
    d="" 

for i in range(len(row)): 
    if not row[i]: 
     row[i] = "" 

ある

def rundate(): 
    global run 
    result = tkinter.messagebox.askyesno(title="Rundate", message="back 7 days?") 
#result = tkinter.messagebox.askyesno() 
    if result == True: 
     run = date.today() - timedelta(7) 
     return run 
    if result == False: 
     os.system("python pick.py") 

#opens the pick.py program which is a calendar the after choosing the dates returns this function 

def get_rundate(): 
     start = self.result1.strftime("%m/%d/%Y") 
     end = self.result2.strftime("%m/%d/%Y") 
     daterange = pd.date_range(start, end) 
     for single_date in daterange: 
      print(single_date.strftime("%m/%d/%Y"))    
     return single_date.strftime("%m/%d/%Y") 

#then returns to weeklyreport 

rundate = rundate() 
print(rundate) 

ですweeklyrpt.pyでrundateとして返す私が言ったようにrundate関数の最初の部分は正常に動作します(7日遡ったデータ要求を返す)

答えて

0

それが唯一の問題かどうかは分かりませんが、間違いなく問題はこれです:

for row in cur.execute(query, (rundate)): 

(rundate)は単一の値です。(rundate,)はタプルです。 cur.executeにはタプルが必要です。

+0

私はそれをどのように修正するかについてのヒントはありますか?私はこのすべてに新しいです – pja

+0

@pja:私のヒントは答えです。 '(rundate)'を使って '(rundate、)'を使ってください。 –

+0

ありがとう、それは意味がある – pja

関連する問題