for n, row in spamreader:
print('row')
print('debug point 4')
cur.execute('''INSERT INTO table(col1,col2,col3,col4)values (%s,%s,%s,%s)''',row)
if n % 2 == 0:
connect.commit()
connect.commit()我正在读取的文件正好有4列。尽管如此,我还是得到了以下错误
File "test_new.py", line 22, in <module>
for n, row in spamreader:
ValueError: too many values to unpack发布于 2018-07-25 15:32:59
问题是,当您在spamreader上迭代时,您需要两个变量- n -根据其余代码,它可能是行号row -行本身。
为了获得行号,您实际需要做的是-
for n, row in enumerate(spamreader):假设spamreader像预期的那样读取行(目前还没有给出spamreader的定义),这应该可以完成工作。
有关使用枚举here的更多信息,请参阅。
发布于 2018-07-25 14:44:47
试一试
for n, row in spamreader.iterrows():对于pandas数据帧,您必须使用df.iterrows():
n将成为您的索引。在row中,您可以像row['column_name']一样访问数据
https://stackoverflow.com/questions/51512356
复制相似问题