xlsxwriter 错误 - 尝试将 SQL 输出写入 excel sheet
xlsxwriter error - Trying to write SQL output to excel sheet
我正在尝试使用 XLSXwriter 模块将 SQL 查询的输出写入 excel。
dwh_cur.execute("""select count (*) from sales where created_at = current_date - 1""")
sales = dwh_cur.fetchall()
worksheet1.write('A1', 'Sale ID')
row = 1
col = 0
for elm1 in sales:
worksheet1.write(row, col, elm1)
row += 1
得到一个错误:
TypeError: float() argument must be a string or a number, not 'tuple'
下面是我试图写入 excel 文件的数据
Sale_ID
1001
1002
1003
1004
1005
任何人都可以帮助我哪里出错了。谢谢..
dwh_cur.fetchall()
正在返回一个元组列表,可能是:
[(1001,), (1002,)]
考虑到这一点,您应该按如下方式编写单元格:
dwh_cur.execute("""select count (*) from sales where created_at = current_date - 1""")
sales = dwh_cur.fetchall()
worksheet1.write('A1', 'Sale ID')
row = 1
col = 0
for elm1 in sales:
worksheet1.write(row, col, elm1[0])
row += 1
您还可以利用 Python 的 enumerate()
功能自动为您提供行号:
dwh_cur.execute("""select count (*) from sales where created_at = current_date - 1""")
sales = dwh_cur.fetchall()
worksheet1.write('A1', 'Sale ID')
col = 0
for row, elm1 in enumerate(sales, start=1):
worksheet1.write(row, col, elm1[0])
如果要返回多个项目,即对于第二列,您可以按如下方式添加它们:
for row, elm1 in enumerate(sales, start=1):
worksheet1.write(row, col, elm1[0])
worksheet1.write(row, col+1, elm1[1])
我正在尝试使用 XLSXwriter 模块将 SQL 查询的输出写入 excel。
dwh_cur.execute("""select count (*) from sales where created_at = current_date - 1""")
sales = dwh_cur.fetchall()
worksheet1.write('A1', 'Sale ID')
row = 1
col = 0
for elm1 in sales:
worksheet1.write(row, col, elm1)
row += 1
得到一个错误:
TypeError: float() argument must be a string or a number, not 'tuple'
下面是我试图写入 excel 文件的数据
Sale_ID
1001
1002
1003
1004
1005
任何人都可以帮助我哪里出错了。谢谢..
dwh_cur.fetchall()
正在返回一个元组列表,可能是:
[(1001,), (1002,)]
考虑到这一点,您应该按如下方式编写单元格:
dwh_cur.execute("""select count (*) from sales where created_at = current_date - 1""")
sales = dwh_cur.fetchall()
worksheet1.write('A1', 'Sale ID')
row = 1
col = 0
for elm1 in sales:
worksheet1.write(row, col, elm1[0])
row += 1
您还可以利用 Python 的 enumerate()
功能自动为您提供行号:
dwh_cur.execute("""select count (*) from sales where created_at = current_date - 1""")
sales = dwh_cur.fetchall()
worksheet1.write('A1', 'Sale ID')
col = 0
for row, elm1 in enumerate(sales, start=1):
worksheet1.write(row, col, elm1[0])
如果要返回多个项目,即对于第二列,您可以按如下方式添加它们:
for row, elm1 in enumerate(sales, start=1):
worksheet1.write(row, col, elm1[0])
worksheet1.write(row, col+1, elm1[1])