Я решил сделать себе веселый вечер и переношу один проект с python2 на 3,
Есть такой маленький кусочек кода-условия, он проверяет создан ли уже хеш файла, если нет добавляет его в бд sqlite (я не знаю синтаксис баз данных, лишь поверхностно и всегда использую какие то оболочки для работы с ними)
в самом файле встречается запрос, который мне кажется не правильным(хоть я и не разбираюсь)
query = "INSERT INTO files (%s) VALUES (?, ?)" % (keys);
ругается на этой строчке
file_id = db.add_file(filename, file['file_hash'])
текст ругани
self.cur.execute(query, values)
ValueError: parameters are of unsupported typе
Собственно она приходит нам из функции:
def add_song(self, filename, filehash):
file = self.get_file_by_filehash(filehash)
if not file:
################ вот тут где insert
file_id = self.insert(self.TABLE_FILESS, {
"name": filename,
"filehash": filehash,
})
else:
file_id = file[0]
return file_id
а вот сама функция insert
def insert(self, table, params):
keys = ', '.join(params.keys())
values = params.values()
query = "INSERT INTO files (%s) VALUES (?, ?)" % (keys);
self.cur.execute(query, values) ##А именно на эту строчку
self.conn.commit()
return self.cur.lastrowid
В общем надеюсь , что кто-то поймет в чем дело, моя задача - что бы это заработало, мне нравиться что делает этот проект, но не нашел аналогов на 3 python, хочу перенести, аналогов не нашел к сожалению