Вот мой код:psycopg2 cursor.execute не обязательные параметры
with open(params['dataFile']) as df:
conn = psycopg2.connect(params['connStr'])
cur = conn.cursor()
its = 0
for line in df:
if its == 0:
pass
else:
row = tuple(line.replace('\n','').split(params['delimiter']))
try:
cur.execute(params['insQueryStr'],row)
except:
print(cur.mogrify(params['insQueryStr'],row))
print(row)
break
its += 1
conn.commit
conn.close
Без TRY/улова, он производит это:
psycopg2.ProgrammingError: syntax error at or near "%"
LINE 1: INSERT INTO mstest values (%s, %s, %s, %s, %s, %s, %s, %s, %...
С попытке поймать, вызов mogrify печатает это:
b'INSERT INTO mstest values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);'
«% s в моей строке запроса не заменяются элементами второго параметра t он вызывает cur.execute(). Зачем? Когда строка печатается, она содержит значения, которые я ожидаю.
Что такое вывод 'print (row)'? –
('8582665123456789', '' '' '' '' '' '' '' '' '' '' ' , '' FY12_FY12 Q2 Trial Layer _Vue_Sit_Trial_TY_FNL "',' ',' ',' 1112345673742 ',' Unknown ',' Unknown ',' ',' ',' 11123456772393 ',' ',' ',' 11234567160 ',' «Starship - Empowering Media», «,», «11», «AM_NA_United States_Commercial_Cloud & Enterprise_Starship», «1112345155», «Starship Corporation», «», «, '', '', 'v3/gto.-1/bmw1.redefined/bmw2.redefined/atc3.3', '', '', '', '', '', '', '', '' , '') – duuug