我已经连接到数据库,并且试图执行一个简单的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
谢谢!
您可以尝试first_elements = [[x[0]] for x in rows]
创建表示行而不是整数的可迭代元素。
编辑:也正如Jean在评论中提到的那样,您可以csv.out.writerow([row])
作为替代解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句