0
我是新的python,我似乎無法弄清楚爲什麼我得到這個錯誤。它告訴我,我有太多的參數,但表中有8列,我傳遞了8個參數。到底是怎麼回事?這個錯誤可能是誤導性的,真正的問題是我試圖傳入的值可能是None
,或者可能是Boolean
使用%s
?Python:psycopg2.ProgrammingError:插入有比目標列更多的表達式
這裏是代碼片段
db.cursor().execute("CREATE TABLE temp_clean_mp_duplicates (id bigint, distinctid character varying(255), created timestamp without time zone, email character varying(255), created_exist boolean, email_exist boolean, user_exist boolean, distinct_id_found boolean, CONSTRAINT temp_clean_mp_duplicates_pkey PRIMARY KEY(id));")
mp_email = None
email_exist = False
if "$email" in mp_properties :
mp_email = mp_properties["$email"]
email_exist = True
mp_distinct_id = result["$distinct_id"]
db_cursor.execute("SELECT u.id, u.email, udm.distinctid, u.sessionId FROM users as u,user_distinctid_map as udm where u.id = udm.user_id and udm.distinctid = %s and lower(email) = lower(%s)", (mp_distinct_id,mp_email,))
distinct_id_found = True
if db_cursor.rowcount == 0 :
distinct_id_found = False
created = None
created_exist = False
if "$created" in mp_properties :
created = mp_properties["$created"]
created_exist = True
db_cursor.execute("SELECT u.id, u.email, u.sessionId FROM users as u where lower(u.email) = lower(%s)", (mp_email,))
user_id = 0
user_exist = False
if db_cursor.rowcount > 0 :
user_id = db_cursor.fetchone()[0]
user_exist = True
db.cursor().execute("INSERT INTO temp_clean_mp_duplicates (id, distinctid, created, email) VALUES (%s,%s,%s,%s,%s,%s,%s,%s);", (user_id, mp_distinct_id, created, mp_email, created_exist, email_exist, user_exist, distinct_id_found))