2016-12-04 60 views
0

我有一個python腳本使用psycopg2插入新數據或更新postgresql數據庫中的數據。 hourly_count由用戶輸入,並且在插入整數時完美工作。如果嘗試使用字符串,它不輸入​​任何內容很重要,但我確實需要它能夠處理空輸入。現在空輸入導致以下UnboundLocalError:空的用戶輸入導致UnboundLocalError

UnboundLocalError: local variable 'hourly_count' referenced before assignment 

如果我理解正確的話,在hourly_count = int(ped[time]) * 6的INT()函數是什麼阻止無效輸入。

我需要做什麼才能允許null輸入而不允許字符串?

def insert_ped(request_json): 

try: 
    ped = request_json['counts']['ped'] 
    for time in ped: 
     time = time 
     hourly_count = int(ped[time]) * 6 

    q = """insert into table (
     time, 
     hourly_count 
     ) values (
     %s, 
     %s 
     )""" 

    con = make_con() 
    cur = con.cursor() 
    cur.execute(q, (
    time, 
    hourly_count 
    )) 
    con.commit() 
except Exception, e: 
    print e 
    yyyy_mm_dd=request_json['counts']['attributes']['date'] 

    q = """update table set 
     time = %s, 
     hourly_count = %s""" 

    con = make_con() 
    cur = con.cursor() 
    cur.execute(q, (
    time, 
    hourly_count 
    )) 
    con.commit() 

回答

0

初始化hourly_counttry-except

hourly_count = 0 
+0

這解決了UnboundLocalError問題,但現在給我'無效字面INT()基數爲10: '''這是我採取的是說我」 m仍然運行int()函數的python規則。 – Kasey

+0

那麼,在使用它之前,你必須檢查字典'ped'是否實際上有'time'項目:'如果時間在ped:... int(time [ped])...' – DyZ

相關問題