将try除了块与python代码合并

时间:2018-02-04 03:29:43

标签: python linux exception try-except

我填充了一个电子表格,其中包含多个返回键和相应值的查询。脚本中正在使用两个数据库连接来返回数据。

如果正在执行的SQL语句没有问题,以下代码可以正常工作。如果SQL出现问题,程序将退出并显示错误,并且我的电子表格不会填充。

如果出现错误,我仍希望在第一列中填充该键并返回值' 0'

棘手的部分是因为有两个服务器连接,一个服务器可能完全处理SQL,另一个可能抛出异常。

有没有办法可以转换此代码块来处理它?<​​/ p>

我有点像Python newb,所以深入研究错误处理有点令人生畏

# Populate the spreadsheet with data from the first set of date ranges.
row = 1
col = 0

for key, value in Queries.query_dic.iteritems():
    cur.execute(value.format(from_dateA,to_dateA))
    cur2.execute(value.format(from_dateA,to_dateA))
    rows = cur.fetchall()
    rows2 = cur2.fetchall()

    # Populate metric being queried in our horizontal headers
    worksheet[index].write(row, col, key, format)
    worksheet[index + 1].write(row, col, key, format)

    # Iterate over the data and write it out row by row.
    for return_count in rows:
        worksheet[index].write(row, col + 1, return_count[0], format2)

    for return_count in rows2:
        worksheet[index + 1].write(row, col + 1, return_count[0], format2)

    row += 1

2 个答案:

答案 0 :(得分:0)

使用试试 - 除了你可以这样做

try:
    for key, value in Queries.query_dic.iteritems():
        cur.execute(value.format(from_dateA,to_dateA))
        cur2.execute(value.format(from_dateA,to_dateA))
        rows = cur.fetchall()
        rows2 = cur2.fetchall()

        # Populate metric being queried in our horizontal headers
        worksheet[index].write(row, col, key, format)
        worksheet[index + 1].write(row, col, key, format)

        # Iterate over the data and write it out row by row.
        for return_count in rows:
            worksheet[index].write(row, col + 1, return_count[0], format2)

        for return_count in rows2:
            worksheet[index + 1].write(row, col + 1, return_count[0], format2)

        row += 1
except:
    # Error Handling

如果您想要进行特定于错误的处理,可以简单地将错误放在except

之后
except KeyboardInterrupt:
    # Error Handling

答案 1 :(得分:0)

经过一些反复试验,我发现了一个有效的解决方案。

query