Помогите мне пожалуйста. Мне нужно вставить словарь в таблицу или обновить его, если существует. Как я обнаружил в stackoverflow, есть много вопросов, как вставлять dict в sql-таблицу, но я не могу найти, как сделать insert..update, если существует со словарем. У кого-нибудь есть идеи?Python, SQL: INSERT INTO ... ON DUPLICATE UPDATE со словарем
Существует мой реальный код (который не работает):
with self.connection.cursor() as cursor:
item['added'] = unicode(int((datetime.datetime.now() - datetime.datetime(1970, 1, 1)).total_seconds()))
columns, values = u', '.join(item.keys()), u', '.join(item.values())
item.pop('added', None)
item.pop('link', None)
item['updated_at'] = datetime.datetime.now()
exists_item = zip(item.keys(), item.values())
update_query = u', '.join([u'{}={}'.format(k, v) for k, v in exists_item])
query = u'INSERT INTO {} ({}) VALUES ({}) ON DUPLICATE KEY UPDATE {}'.format(
DB_NAME, columns, values, update_query
)
cursor.execute(query)
У меня есть ошибка синтаксиса, поскольку значения часть не должным образом спасся. но если я использую один из лучших решений для вставки Dict (сделать заполнители, а затем использовать выполнить (запрос значения) «?») У меня другая ошибка: TypeError: not all arguments converted during string formatting
Спасибо за вашу помощь.