Как получить нулевой столбец заполнения из 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