首页 > 解决方案 > 如何解决insert()缺少1个必需的位置参数:Python Sqlite3的'column_values'问题?

问题描述

一切都很好,现在它返回错误

def add_expense(raw_message):
    chat_id         = types.User.get_current().id
    parsed_message  = _parse_message(raw_message)
    category        = Categories().get_category(parsed_message.category_text)
    inserted_row_id = db.insert("expense", {"user_id": chat_id, 
    "amount": parsed_message.amount, "created": _get_now_formatted(),  
    "category_codename": category.codename, "raw_text": raw_message})

    return Expense(id=None, amount=parsed_message.amount, category_name=category.name)

'column_values' 类型错误:插入()缺少 1 个必需的位置参数:


db.insert在别处定义为:

def insert(id,table, column_values): 
    columns = ', '.join( column_values.keys() )
    values = [tuple(column_values.values())]
    placeholders = ", ".join( "?" * len(column_values.keys()) )  
    cursor.executemany( f"INSERT INTO {table} "
                        f"({columns}) "
                        f"VALUES ({placeholders})", values)
    conn.commit()

标签: pythonsqlite

解决方案


推荐阅读