有什么方法可以从我的SQL select结果中获取列名? 这是我的小测试代码,我想要的是从结果中生成一个示例JSON:
import MySQLdb
...
....
cursor.execute('SELECT * from table')
rows = cursor.fetchall()
column = [t[0] for t in cursor.description]
for row in rows:
myjson = {"id": row[column['id']], "name": row[column['name']], "age": row[column['age']]}
myresult = json.dumps(myjson, indent=4)
return myresult
但我得到TypeError: tuple indices must be integers, not str
如果我在表中添加或删除列,我不想使用像row[2]
这样的索引,它不会影响结果。我希望能够引用列名。
任何帮助都将不胜感激。
答案 0 :(得分:0)
您可以通过cursor.description
访问列名,这是元组的元组。通过访问每个元素的第一个元素,您将获得列名称。
column_names = [t[0] for t in cursor.description]
这意味着您可以使用列名称创建一个dict - >索引映射至少可以让你写出类似
的东西for row in rows:
myjson = {"id": row[columns['id']], "name": row[columns['name']], "age": row[columns['age']]}
myresult = json.dumps(myjson, indent=4)
return myresult