Как получить нулевой столбец заполнения из MySQL через Python?

У меня есть таблица в MySQL, как показано ниже:

CREATE TABLE `province` (
  `pid` int(2) unsigned zerofill NOT NULL,
  `pname` varchar(255) CHARACTER SET utf8 COLLATE utf8_persian_ci DEFAULT NULL,
  `family` int(12) DEFAULT NULL,
  `population` int(11) DEFAULT NULL,
  `male` int(11) DEFAULT NULL,
  `female` int(11) DEFAULT NULL,
  PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci

обратите внимание, что первый столбец (pid) - это столбец с нулевым заполнением, а данные в таблице (провинция) такие, как показано ниже:

=========================================
|pid|pname|family|population|male|female|
=========================================
|02 | 'A' |  12  |    20    |  8 |   5  |
=========================================
|03 | 'B' |  25  |    20    |  7 |   6  |
=========================================
|05 | 'c' |  34  |     5    |  7 |   9  |
=========================================

Я хочу получить столбец PID через Python, поэтому мой код Python:

import mysql.connector

if __name__ == '__main__':
    data = []
    res = []
    cnx = mysql.connector.connect(user='mehdi', password='mehdi', host='127.0.0.1', database='cra_db')
    cursor = cnx.cursor()
    qrystr = 'SELECT pid FROM province;'
    cursor.execute(qrystr)
    print(cursor.fetchall())
    cnx.close()     

но когда я запускаю этот код Python, это исключение произошло:

возвратил результат с ошибкой, заданной в файле "C:\Users\M_Parastar\Desktop\New folder\ttt.py", строка 11, в виде стрелки (cursor.fetchall())


Есть ли у вас какие-либо идеи, как получить нулевой столбец заполнения с помощью Python?

1 ответ

Курсор возвращает итеративный объект python, замените "print(cursor.fetchall())" на "для строк в курсоре: print (row)". Посетите Connector/Python API Reference

Другие вопросы по тегам