Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用列表使用psycoyg2 python输入数据(缺少数据)_Python_Psycopg2 - Fatal编程技术网

使用列表使用psycoyg2 python输入数据(缺少数据)

使用列表使用psycoyg2 python输入数据(缺少数据),python,psycopg2,Python,Psycopg2,希望将cvs中缺少值的数据获取到postgresql中。我很乐意使用字符串插入。我想要一个快速的是这样做使用列表或类似的东西。我还需要检查缺少的值,并在其他方面出现错误时进行替换 for w in csvReader: if a ==0: var = w sql_table = 'CREATE TABLE TableName (%s)' % ','.join('%s VARCHAR(50)' % name for name in var)

希望将cvs中缺少值的数据获取到postgresql中。我很乐意使用字符串插入。我想要一个快速的是这样做使用列表或类似的东西。我还需要检查缺少的值,并在其他方面出现错误时进行替换

for w in csvReader:  
    if a ==0:  
       var = w  
       sql_table = 'CREATE TABLE TableName (%s)' % ','.join('%s VARCHAR(50)' % name for name in var)  
        dict_cur.execute(sql_table)  

    else:  
        colnum = 0  
        for col in w:  
            nms= col   
            print w, 'column'  
            #this is not correct 
            sql_insert = ('INSERT INTO TableName (%s) VALUES (%s)' % (','.join('%s' % name for name in var),','.join('%s' % nm for nm in nms)))  
            cursor.execute(sql_insert)  
            colnum += 1  

        print w  
    a = a + 1  
错误 回溯(最近一次呼叫最后一次): 文件“/home/matthew/workspace/dfdsggd/try_db_thing.py”,第41行,在 cursor.execute(sql\U插入) psycopg2.ProgrammingError:在“”处或附近出现语法错误 第1行:…订单、月、日、年)值(2,6,7,3,5,7)
^

查看错误消息,看起来您正试图在数据库中的字段ORDER\u ADM中插入“.”只需从csv中读取,而无需将其置于引号之间


另外,三个文件DAY\u ADM、MONTH\u ADM、YEAR\u ADM建议您可能应该将它们合并到一个日期中,并将它们放在数据库的同一字段中。但这意味着要以某种方式考虑数据库的结构(而不是让一切都变为VARCHAR)。同时在循环中创建读取数据的表,即使是在第一次迭代中也是很不寻常的。

如果你想得到一个明确的答案,那么你可以举一些csv和表格结构的例子。是的,我同意循环,但这就是我发现的。因为我不知道确切的数据类型,所以我正在考虑只获取数据,然后在Postgres中更改它。我可以使用regex和autochange读取数据类型。这是一个很好的例子。Psycopg2使事情变得非常困难,因为没有准备好的语句。我知道这只是一个例子。不是吗?我的理解是,Psycopg2没有准备好的声明。Python3和postgres都可以使用,但我不能将Python3用于我正在做的大部分工作。