Как получить карту всех типов данных из py mysql .cursor.description? - PullRequest
1 голос
/ 29 апреля 2020

Для sql_select_query = 'select * from table' вы можете использовать модуль pymysql python для подключения к MySql database и cursor.description для извлечения значений.

def conn():
    myDb=pymysql.connect(server,user,password,database)
    return myDb

dbc = conn() #database connection
dbCursor = dbc.cursor() # cursor

# gathers all column field names and their type
field_names_and_type = [desc[:2] for desc in dbCursor.description]

Пример вывода:

print(field_names_and_type)

[('ItemId', 1), ('ItemName', 3)]

тип 1 - это nvchar

тип 3 - это int

Вопрос: как их сопоставить? Я проверил py mysql docs , но не смог найти отображение для файла cursor.description.

1 Ответ

0 голосов
/ 30 апреля 2020

Pymysql код типа определены в py mysql .constants.FIELD_TYPE

DECIMAL = 0
TINY = 1
SHORT = 2
LONG = 3
FLOAT = 4
DOUBLE = 5
NULL = 6
TIMESTAMP = 7
LONGLONG = 8
INT24 = 9
DATE = 10
TIME = 11
DATETIME = 12
YEAR = 13
NEWDATE = 14
VARCHAR = 15
BIT = 16
JSON = 245
NEWDECIMAL = 246
ENUM = 247
SET = 248
TINY_BLOB = 249
MEDIUM_BLOB = 250
LONG_BLOB = 251
BLOB = 252
VAR_STRING = 253
STRING = 254
GEOMETRY = 255

CHAR = TINY
INTERVAL = ENUM
...