导致UnboundLocalError的空用户输入

时间:2016-12-04 17:28:53

标签: python postgresql psycopg2

我有一个python脚本使用psycopg2在postgresql数据库中插入新数据或更新数据。 hourly_count由用户输入,并在插入整数时完美地工作。重要的是,如果尝试使用字符串,它不会输入任何内容,但我确实需要它能够处理空输入。现在,空输入会导致以下UnboundLocalError:

UnboundLocalError: local variable 'hourly_count' referenced before assignment

如果我理解正确,hourly_count = int(ped[time]) * 6中的int()函数会阻止空输入。

在不允许字符串的情况下,我需要做什么才能允许空输入?

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()

1 个答案:

答案 0 :(得分:0)

hourly_count

之前初始化try-except
hourly_count = 0