@howuu

Пытаюсь перенести проект с python2 на python3, что пошло не так?

Я решил сделать себе веселый вечер и переношу один проект с 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, хочу перенести, аналогов не нашел к сожалению
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы