определить тип исключения по psycopg2 - PullRequest
0 голосов
/ 06 ноября 2018

Я использую 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 голосов
/ 06 ноября 2018

используя except Exception as e: я получил сообщение "аргументы не могут быть смешаны", что привело меня к выводу, что ... VALUES (%(str)s, %(int)s, %(float)s) не работает.

Вместо этого я должен был выполнить Typecasting в части (str(topic[1]), int(switchCase(topic[-1])), float(msg.payload)).

так что я в основном неправильно понял документы. Мне стыдно.

...