Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
索引器错误:元组索引超出python postgresql的范围_Python_Postgresql_Csv - Fatal编程技术网

索引器错误:元组索引超出python postgresql的范围

索引器错误:元组索引超出python postgresql的范围,python,postgresql,csv,Python,Postgresql,Csv,打印(“导入的CSV数据”) 我正在尝试合并2个CSV文件并将结果文件放入 数据库但我面临着错误------ 文件“C:/Users/Administrator/join-col.py”,第42行,在 “值(%s,%s,%s,%s,%s)”,(行,) 索引器错误:元组索引超出范围 如果出现此问题,请提供帮助 import psycopg2 import csv #import operator import pandas as pd database = psycopg2.connect (da

打印(“导入的CSV数据”)

我正在尝试合并2个CSV文件并将结果文件放入 数据库但我面临着错误------

文件“C:/Users/Administrator/join-col.py”,第42行,在
“值(%s,%s,%s,%s,%s)”,(行,)
索引器错误:元组索引超出范围

如果出现此问题,请提供帮助

import psycopg2
import csv
#import operator
import pandas as pd
database = psycopg2.connect (database = "mydw", user="postgres",                         
password="1234", host="localhost", port="5432")
cursor = database.cursor()
a = pd.read_csv("test.csv")
b = pd.read_csv("test2.csv")
print ("Read file")
c = pd.concat([a, b], join='outer')
c.to_csv("sorted_data.csv", index=False)
mydata = cursor.execute(delete)
cursor.execute("""Create Table Real.region
        (Country varchar(55),
        Capital varchar(55),
        State varchar(55),
        City varchar(55),
        Zip varchar(55)
         );""")

for row in c:
   cursor.execute("""INSERT INTO Real.region (Country, Capital, State,         
    City, Zip)"""\
        """VALUES (%s,%s,%s,%s,%s)""",(row,))            
cursor.close()
database.commit()
database.close()
将元组列表放在c中(您可以通过打印它来验证),然后您应该只需要更改它

a = pd.read_csv("test.csv")
b = pd.read_csv("test2.csv")
print ("Read file")
c = pd.concat([a, b], join='outer')
对此

cursor.execute("""INSERT INTO Real.region (Country, Capital, State,         
City, Zip)"""\
    """VALUES (%s,%s,%s,%s,%s)""",(row,))  
问题是
已经是一个元组。通过执行
(row,)
,您正在创建一个只有一个元素的薄纱,即
row
本身。 这也是为什么您会得到一个
索引器

如果

import psycopg2
import csv
#import operator
import pandas as pd
database = psycopg2.connect (database = "mydw", user="postgres",                         
password="1234", host="localhost", port="5432")
cursor = database.cursor()
a = pd.read_csv("test.csv")
b = pd.read_csv("test2.csv")
print ("Read file")
c = pd.concat([a, b], join='outer')
c.to_csv("sorted_data.csv", index=False)
mydata = cursor.execute(delete)
cursor.execute("""Create Table Real.region
        (Country varchar(55),
        Capital varchar(55),
        State varchar(55),
        City varchar(55),
        Zip varchar(55)
         );""")

for row in c:
   cursor.execute("""INSERT INTO Real.region (Country, Capital, State,         
    City, Zip)"""\
        """VALUES (%s,%s,%s,%s,%s)""",(row,))            
cursor.close()
database.commit()
database.close()
将元组列表放在c中(您可以通过打印它来验证),然后您应该只需要更改它

a = pd.read_csv("test.csv")
b = pd.read_csv("test2.csv")
print ("Read file")
c = pd.concat([a, b], join='outer')
对此

cursor.execute("""INSERT INTO Real.region (Country, Capital, State,         
City, Zip)"""\
    """VALUES (%s,%s,%s,%s,%s)""",(row,))  
问题是
已经是一个元组。通过执行
(row,)
,您正在创建一个只有一个元素的薄纱,即
row
本身。 这也是为什么您会得到一个
索引器

尝试
len(row)
以了解
行中有多少项
“值(%s,%s,%s,%s)”,“row)
,您只传递一个值,否则。尝试
len(row)
以了解
行中有多少项
如何处理
“值(%s,%s,%s,%s,%s)”,行)
,否则只传递一个值。