尝试将列表垂直写入.csv文件

Suraj Nagabhushana Ponnaganti

我已经连接到数据库,并且试图执行一个简单的select命令并写入.csv文件。这就是我所拥有的

import pyodbc
import csv

print("Imported pyodbc")
username = "****"
# connection_string = "*Connection_string*" % username
print("Before connection")
# conn = pyodbc.connect(connection_string)
conn = pyodbc.connect("connection string")

print("Connection complete")

cursor = conn.cursor()

cursor.execute("SELECT * FROM (tablename) limit 10")

rows = list(cursor.fetchall())
for row in rows:
    print(row)



with open('\\*link*\\test.csv','w', newline='') as out:
    csv_out=csv.writer(out)

    first_elements = [x[0] for x in rows]
    print(first_elements)
    for i in range(len(first_elements)):
        print (first_elements[i])
        temp=first_elements[i]
        csv_out.writerow(temp)
    csv_out.writerow('')

每行是一个包含204个元素的元组,我正在尝试仅将第一个元素保存在.csv文件中。我尝试使用csv.writeout(row[0])它并给出了一个错误:

 csv_out.writerow(row)
_csv.Error: iterable expected, not int

我试图将其转换为列表,并在writerow中进行迭代,但是它提供了第1个元素的行

1 2 3 4 5 
1 2 3 4 5
1 2 3 4 5

但是我想要的是

1
2
3
4
5

谢谢!

Have_Mercy

您可以尝试first_elements = [[x[0]] for x in rows]创建表示行而不是整数的可迭代元素。

编辑:也正如Jean在评论中提到的那样,您可以csv.out.writerow([row])作为替代解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章