我正在创建两个单独的查询,然后尝试按area_water(第二个查询)划分area_land(第一个查询),并打印结果。
import sqlite3
conn = sqlite3.connect('factbook.db')
total_land = conn.execute('select sum(area_land) from facts;').fetchall()
total_water = conn.execute('select sum(area_water) from facts;').fetchall()
print(total_land/total_water)
这是我得到的错误:
TypeError:/:'list'和'list'
的不支持的操作数类型
我无法弄清楚我的错误在哪里
请帮忙
答案 0 :(得分:1)
.fetchall()
会返回rows列表。
您可以在返回的列表中引用该值:
total_land = conn.execute('select sum(area_land) from facts;').fetchall()[0][0]
total_water = conn.execute('select sum(area_water) from facts;').fetchall()[0][0]
您还可以使用.fetchone()
,它只返回第一个匹配的行:
total_land = conn.execute('select sum(area_land) from facts;').fetchone()[0]
total_water = conn.execute('select sum(area_water) from facts;').fetchone()[0]
答案 1 :(得分:1)
这是我进行了一些研究之后的答案
import sqlite3
conn = sqlite3.connect('factbook.db')
total = conn.execute('select sum(area_land) / sum(area_water) from facts where (area_land != "") & (area_water != "");').fetchall()
print(total)
谢谢你给我的所有参考和解释(y)