Python 如何从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_列表不能用于计算,因为元素的格式不同。 如何解决此问题?光标结果始终是

当我从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.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”来获得有用的东西。如果你被这种方法困住了,我建议你根据你能走多远来调整你的问题。