2016-04-03 10 views
1

VARCHAR alanım var, ara sıra sayıları (yalnızca sayılarla rastgele bir dizge) nadiren saklayan bir VARCHAR alanım var. SELECT alanı, MySQLdb alanı, o satırdaki alanı bir tam sayıya dönüştürür, bazen taşma oluşturur.MySQLdb'yi tüm MySQL verilerini dizge olarak değerlendirmek için zorla

MySQLdb.connect()'un varsayılan MySQL dizesi sonucunu geçersiz kılan conv adlı bir parametre aldığını biliyorum -> Python veri türü dönüşümü. Bununla birlikte, tüm MySQL verilerini dizeler olarak döndürmek için bunu nasıl geçersiz kılacağımı bilmiyorum.

MySQLdb.connect()'un conv argümanını MySQL'den bir Python dizesi olarak tüm verileri döndürmek için nasıl geçersiz kılarım? Alternatif çözümler var mı?

+0

'MySQLdb.converters' kullan, bu Bool2Str, Set2Str içerir .... – haifzhan

cevap

2

this, conv'a göre, alan türü (MySQLdb.constants.FIELD_TYPE) ile bir Python veri türü arasında bir sözlüktür. senin Örneğin, olabilir: daha genel

from MySQLdb.constants import FIELD_TYPE 
conv = { FIELD_TYPE.VARCHAR: str } 

Ya (a kesmek biraz daha olsa da):

from collections import defaultdict #if on Python 3 
conv = defaultdict(lambda: str) 

tüm veri türlerini zorlamak için str dönüştürülecek.

İlgili konular