通过psycopg2确定异常类型

时间:2018-11-06 11:29:41

标签: python python-3.x psycopg2

我正在将python与psycopg2一起使用。以下代码段会产生某种错误,但我无法获得任何输出,因此我无法处理错误

cur = conn.cursor()
try:
  cur.execute("INSERT INTO mqtt.records(client, id_type, value) VALUES (%(str)s, %(int)s, %(float)s)", (topic[1], switchCase(topic[-1]), msg.payload)
except psycopg2.Error as e:
  print(e)
conn.commit()
cur.close()

我很确定这是某种类型转换错误,但是except psycopg2.Error as e:并没有抓住它。如果我使用通用except:捕获任何异常,它将捕获。但是然后我不知道如何获得错误消息

1 个答案:

答案 0 :(得分:0)

我使用except Exception as e:收到消息“参数无法混合”,这使我发现... VALUES (%(str)s, %(int)s, %(float)s)无效。

相反,我不得不在(str(topic[1]), int(switchCase(topic[-1])), float(msg.payload))部分进行类型转换。

所以我基本上是误解了文档。对我感到羞耻。