Как исправить ошибку вставки данных CSV в Snowflake - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь загрузить данные из CSV-файла в базу данных, используя python со следующим кодом

file=open('C:\\Users\\Tom\\Documents\\Test\\csv_data_20181115.csv')
csv_data = csv.reader(file)
mydb = snowflake.connector.connect(
user=user,
password=password,
account=account,
database=database,
)

for row in csv_data:
    cursor.execute('INSERT INTO jeremy_table_test(pivot, pivot_values)' ' VALUES({})'.format(row))

# close the connection to the database.
mydb.commit()
cursor.close()
print("Done")

Я получаю следующую ошибку

Traceback (most recent call last):
  File "read_csv.py", line 26, in <module>
    cursor.execute('INSERT INTO test_table_test(pivot, pivot_values)' ' VALUES({})'.format(row))
  File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\snowflake\connector\cursor.py", line 550, in execute
    errvalue)
  File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\snowflake\connector\errors.py", line 97, in errorhandler_wrapper
    cursor.errorhandler(connection, cursor, errorclass, errorvalue)
  File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\snowflake\connector\errors.py", line 73, in default_errorhandler
    done_format_msg=errorvalue.get(u'done_format_msg'))
snowflake.connector.errors.ProgrammingError: 001003 (42000): SQL compilation error:
syntax error line 1 at position 58 unexpected '['.
syntax error line 1 at position 96 unexpected ']'.

Когда я печатаю (строка) Мои данные выглядят следующим образом.

['pivotValues', 'pivotValues_stripped']
['urn:li:sponsoredCampaign:134971656', '134971656']
['urn:li:sponsoredCampaign:135043976', '135043976']
['urn:li:sponsoredCampaign:135249746', '135249746']

Как вставить данные без этих скобок?

1 Ответ

1 голос
/ 06 апреля 2019

Как насчет этого:

for row in csv_data:
    cursor.execute('INSERT INTO jeremy_table_test(pivot, pivot_values)' ' VALUES({1},{2})'.format(row[0],row[1]))

Edit: без .format()

for row in csv_data:
    cursor.execute('INSERT INTO jeremy_table_test(pivot, pivot_values)' ' VALUES('+str(row[0])+','+str(row[1])+')')
...