Python 如何从mysql中读取数据并用于计算?
当我从mysql读取一列数据时,如下所示Python 如何从mysql中读取数据并用于计算?,python,mysql,sql,python-3.x,Python,Mysql,Sql,Python 3.x,当我从mysql读取一列数据时,如下所示 cursor = db.cursor() query = ('SELECT GDP FROM city') cursor.execute(query) gdp_list = [] for GDP in cursor: gdp_list.append(GDP) 现在我得到了gdp_列表 [(50,), (60,), (80,), (40,)] 但是我发现gdp_列表不能用于计算,因为元素的格式不同。 如何解决此问题?光标结果始终是
cursor = db.cursor()
query = ('SELECT GDP FROM city')
cursor.execute(query)
gdp_list = []
for GDP in cursor:
gdp_list.append(GDP)
现在我得到了gdp_列表
[(50,),
(60,),
(80,),
(40,)]
但是我发现gdp_列表不能用于计算,因为元素的格式不同。
如何解决此问题?光标结果始终是一个元组 您需要为它编制索引,并且可以将该循环重写到列表理解中
cursor.execute(query)
gdp_list = [res[0] for res in cursor]
现在,你在GDP中得到的是元组而不是整数。要附加的int只是元组的第一个元素。只需使用GDP[0]而不是GDP
cursor = db.cursor()
query = ('SELECT GDP FROM selectedairport')
cursor.execute(query)
gdp_list = []
for GDP in cursor:
gdp_list.append(GDP[0])# append only the first element of the tuple
希望这有帮助 您必须将元组部分转换为列表,您可以在元组上迭代,或者如果需要,您可以尝试以下lambda方法:
print(list(map(lambda x:x[0],gdp_list)))
输出将是:
[50, 60, 80, 40]
你期望的结果是什么?看起来你有一个元组列表。您是否希望得到一个浮点或整数列表?像这样[50,60,80,40],您的问题是结果是一个元组列表。(运行
type(gdp\u list[1])
来了解我的意思。)你应该能够通过谷歌搜索“tuple math numpy”来获得有用的东西。如果你被这种方法困住了,我建议你根据你能走多远来调整你的问题。