首页 > 解决方案 > 如何在 postgresql 语句中插入值,错误消息:字符串格式化期间并非所有参数都转换

问题描述

新错误:“%”附近:语法错误我有多个包含值的列表,我想在 postgresql 数据库中逐行保护它们

我设法用sql来做,但是postgresql不一样,有什么区别?

def safePsql(TrackID,seglist,trkptlist,speed,ele,time,lat,lon,hdop,mode,länge):
    sql = "INSERT INTO mobilenew VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s);"
    #mobilenew
    e = 0
    modedata = []
    for e in range(länge):
            e= e+1
            modedata.append(mode)
    #vendor_list = [TrackID,seglist[f],trkptlist[f],lat[f],lon[f],ele[f],time[f],hdop[f],speed[f],modedata[f]]
    try:
        # read database configuration

        #params = config()
        # connect to the PostgreSQL database
        #conn = psycopg2.connect(**params)
        # create a new cursor
        #cur = conn1.cursor()
        conn1 = psycopg2.connect("dbname='sdb_course' user='postgres' host='localhost' password='admin'")
        d = conn1.cursor()
        # execute the INSERT statement
        f = 0
        for f in range(länge):

            d.execute(sql , (TrackID,seglist[f],trkptlist[f],lat[f],lon[f],ele[f],time[f],hdop[f],speed[f],modedata[f]))
            f = f+1
        # commit the changes to the database
        conn1.commit()

    except (Exception, psycopg2.DatabaseError) as error:
        print(error)

--edited 版本我希望没有错误,并且 psql 中的所有行都安全感谢任何帮助信息:列表长度相同,idk 出了什么问题

标签: pythonpostgresql

解决方案


推荐阅读