索引器错误:元组索引超出python postgresql的范围
打印(“导入的CSV数据”) 我正在尝试合并2个CSV文件并将结果文件放入 数据库但我面临着错误------ 文件“C:/Users/Administrator/join-col.py”,第42行,在索引器错误:元组索引超出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
“值(%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)”,行)
,否则只传递一个值。