我填充了一个电子表格,其中包含多个返回键和相应值的查询。脚本中正在使用两个数据库连接来返回数据。
如果正在执行的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
答案 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