2012-10-18 57 views
0

我使用Python 3.2.3返回的列名,与MySQL /连接器1.0.7模块。有没有办法返回列名,如果MySQL查询返回空结果?从空的MySQL查询结果

例如。说我有这个查询:

SELECT 
`nickname` AS `team`, 
`w` AS `won`, 
`l` AS `lost` 
WHERE `w`>'10' 

然而,如果没有超过10的人,它显然没有返回任何东西。现在,我知道我可以检查如果结果是None,但我可以让MySQL返回列名称和它一个NULL值?

如果您好奇,我想知道这是否可能的原因是因为我根据列名动态构建字典。所以,上面的,最终会看起来像这样的东西,如果没有人超过10 ...

[{'team':None,'won':None,'lost':None}] 

,看起来像这样,如果它发现了3支球队在10 ...

[{'team':'Tigers','won':14,'lost':6}, 
{'team':'Cardinals','won':12,'lost':8}, 
{'team':'Giants','won':15,'lost':4}] 

如果这种事情是可能的,那么我不会有写一吨的异常检查各地在空字典的情况下,所有的地方的代码。

回答

0

你可以先使用DESC TABLE_NAME,你应该在第一列获得列名

你也已经知道在字典中键,以便你可以构建自己,然后添加的东西,如果结果有值。

[{'team':None,'won':None,'lost':None}] 

但是我看不出为什么需要这个。如果你有一个list of dictionaries,我猜你会循环操作。对于循环不会做任何一个空列表,这样你就不必理会例外检查

如果你不得不这样做result[0]['team']那么你一定要检查是否len(result)>0