如何从sql查询中获取列名?

p1tboqfb  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(630)

我需要将来自sql查询的数据放入一个dataframe中。请告诉我有没有可能从查询结果中得到列名?我发现有一个 keys() sqlalchemy中的函数,但它不适用于我:

  1. import mysql.connector
  2. import pandas as pd
  3. mydb = mysql.connector.connect(
  4. host="SQLServer",
  5. user="sqlusr",
  6. password="usrpasswd",
  7. database="sqldb"
  8. )
  9. cursor = mydb.cursor()
  10. Query="SELECT Title, Review, Rate FROM reviews;"
  11. cursor.execute(Query)
  12. df = pd.DataFrame(cursor.fetchall())
  13. df.columns = cursor.keys()

attributeerror:“cmysqlcursor”对象没有属性“keys”

y53ybaqx

y53ybaqx1#

我想这是你在寻找的

  1. cnx = mysql.connector.connect(user=DB_USER, password=DB_USER_PASSWORD, host=DB_HOST, database=DB_NAME)
  2. cursor = cnx.cursor()
  3. query = ("SELECT `name`, `ftp_name`, `created_at`, `status` AS `status_customer` FROM `customers"
  4. "WHERE `status` = %(status)s")
  5. cursor.execute(query, { 'status': 1 })
  6. # cursor.description will give you a tuple of tuples where [0] for each is the column header.
  7. num_fields = len(cursor.description)
  8. field_names = [i[0] for i in cursor.description]
  9. print(num_fields)
  10. print(field_names)
  11. >>> 4
  12. >>> [u'name', u'ftp_name', 'created_at', u'status_customer']
  13. # OR just use this cursor function:
  14. print(cursor.column_names)
  15. >>> (u'name', u'ftp_name', 'created_at', u'status_customer')

希望这有帮助!

展开查看全部
4ioopgfo

4ioopgfo2#

显示your-database-name.your-table-name中的列

相关问题