PostgreSQL和Python-TypeError:在字符串格式化期间并非所有参数都已转换

时间:2018-06-19 19:17:30

标签: python postgresql flask flask-sqlalchemy

我使用Python Flask和Postgres将一个苹果插入数据库:

cursor.execute("""
        LOCK TABLE apples IN SHARE ROW EXCLUSIVE MODE;
        INSERT INTO apples(apple)
        SELECT %s
            WHERE NOT EXISTS (
                SELECT * FROM apples WHERE apple = %s
            );
        """,
        apple))

但是出现以下错误:

TypeError:在字符串格式化期间并非所有参数都已转换

哪里出了错?

编辑: 使用(apple, )时,出现以下错误:IndexError:元组索引超出范围(也使用[apple])。

谢谢

1 个答案:

答案 0 :(得分:0)

apple放入可迭代的列表或元组中:

cursor.execute("""
    LOCK TABLE apples IN SHARE ROW EXCLUSIVE MODE;
    INSERT INTO apples(apple)
    SELECT %s
        WHERE NOT EXISTS (
            SELECT * FROM apples WHERE apple = %s
        );
    """,
    (apple,)))