Добавить словарь или список в Sqlite3 - выдает ошибку, параметр операции должен быть str - PullRequest
0 голосов
/ 26 марта 2019

Хорошо, я новичок в sqlite и python в целом, поэтому, пожалуйста, будьте хороши =) У меня есть простой словарь -

time = data[0]['timestamp']
price = data[0]['price']

myprice = {'Date':time,'price':price}

myprice выглядит так (время является меткой времени) -

{'Date': 1553549093, 'price': 1.7686}

Теперь я хочу добавить данные в базу данных sqlite3 ... поэтому я создал это -

#Create database if not exist...

db_filename = 'mydb_test.db'
connection = sqlite3.connect(db_filename)

#Get a SQL cursor to be able to execute SQL commands...

cursor = connection.cursor()

#Create table

sql = '''CREATE TABLE IF NOT EXISTS TEST
            (PID INTEGER PRIMARY KEY AUTOINCREMENT,
            DATE TIMESTAMP,
            PRICE FLOAT)'''

#Now lets execute the above SQL

cursor.execute(sql)


#Insert data in sql

sql2 =  ("INSERT INTO GBPCAD VALUES (?,?)", [(myprice['Date'],myprice['price'])])

cursor.execute(sql2)
cursor.commit()
connection.close()

Но при выполнении этого кода я получаю ValueError: operation parameter must be str

Что яделать неправильно?

1 Ответ

1 голос
/ 26 марта 2019

Передайте аргументы оператора insert в execute():

sql2 =  "INSERT INTO GBPCAD (DATE, PRICE) VALUES (?,?)"
cursor.execute(sql2, (myprice['Date'], myprice['price']))

Также включите в оператор вставки имена столбцов.

...