Сообщить об ошибке.

Подмодуль converters модуля MySQLdb в Python

Преобразования типов MySQLdb

Подмодуль MySQLdb.converters обрабатывает все преобразования типов для MySQL. Если преобразования типов по умолчанию вам не нужны, то можно сделать свои собственные. Преобразования словаря сопоставляют некоторый тип с функцией преобразования, которая возвращает соответствующее значение:

  • key: FIELD_TYPE.* (из MySQLdb.constants)

    Функция преобразования: аргументы - строка, возвращает - объект Python.

  • key: object (типа объекта Python из типов или класс)

    Функция преобразования: аргументы - объект Python указанного типа или класса и конверсионный словарь, возвращает - литеральное значение SQL.

Примечания: Большинство функций преобразования могут игнорировать словарь, но это обязательный параметр. Это необходимо для преобразования таких вещей, как последовательности и экземпляры.

Не изменяйте конверсии, если можно этого избежать. Вместо них создайте копии (методом .copy()), измените копии, а затем передайте их в MySQLdb.connect().

Содержание:


MySQLdb.converters.Bool2Str(s, d):

Метод MySQLdb.converters.Bool2Str() преобразует логическое выражение Python в строку.

>>> from MySQLdb import converters
>>> converters.Bool2Str(True, {})
# b'1'

MySQLdb.converters.Decimal2Literal(o, d):

Метод MySQLdb.converters.Decimal2Literal() преобразует число Decimal в строку.

>>> from MySQLdb import converters
>>> from decimal import Decimal
>>> a = Decimal('3.3')
>>> converters.Decimal2Literal(a, {})
# '3.3'

MySQLdb.converters.Float2Str(o, d):

Метод MySQLdb.converters.Float2Str() преобразует число c плавающей запятой в строку.

>>> from MySQLdb import converters
>>> converters.Float2Str(3.1415926, {})
# '3.1415926e0'

MySQLdb.converters.None2NULL(o, d):

Метод converters.None2NULL() преобразует None в NULL.

>>> from MySQLdb import converters
>>> converters.None2NULL(None, {})
# b'NULL'

MySQLdb.converters.Thing2Literal(o, d):

Метод MySQLdb.converters.Thing2Literal() преобразует чего-либо в строковый литерал SQL.

>>> from MySQLdb import converters
>>> a = {x for x in range(6)}
>>> converters.Thing2Literal(a, {})
# b"'{0, 1, 2, 3, 4, 5}'"

При использовании MySQL-3.23 или новее .string_literal() является методом объекта _mysql.MYSQL, и эта функция будет переопределена этим методом при создании соединения.

MySQLdb.converters.Thing2Str(s, d):

Метод MySQLdb.converters.Thing2Str() преобразует что-либо в строку с помощью str()..

>>> from MySQLdb import converters
>>> a = {x for x in range(6)}
>>> converters.Thing2Str(a, {})
# '{0, 1, 2, 3, 4, 5}'

MySQLdb.converters.array2Str(o, d):

Метод MySQLdb.converters.array2Str() преобразует объект array при помощи выражения Thing2Literal(o.tostring(), d).

>>> from array import array
>>> from MySQLdb import converters
>>> arr = array('d', [1.0, 2.0, 3.14])
>>> converters.array2Str(arr, {})
# b"'\\0\\0\\0\\0\\0\\0\xf0?\\0\\0\\0\\0\\0\\0\\0@\x1f\x85\xebQ\xb8\x1e\t@'"