MySQLdb を使用して mysql データベースと通信しており、すべての結果セットを動的に取得できます。
私の問題は、結果セットを取得すると、mysql でタイムスタンプとして宣言されている列がいくつかあるが、取得すると None になることです。
2 つの列があり、どちらもタイムスタンプが宣言されていますが、一方は正しいデータを返し、他方は None を返します。utime と enddate は両方ともタイムスタンプとして宣言されていますが、utime は正しく返されませんが、enddate は返されます。
['utime', 'userstr', 'vstr_client', 'enddate']
((None, '000102030ff43260gg0809000000000004', '7.7.0', '1970-01-01 12:00:00.000000'))
def parse_data_and_description(cursor, data):
res = []
cols = [d[0] for d in cursor.description]
print cols
print data
for i in data:
res.append(OrderedDict(zip(cols, i)))
return res
def call_multi_rs(sp, args):
rs_id=0;
conn = connect()
cursor = conn.cursor()
try:
conn.autocommit(True)
cursor.execute ("CALL %s%s" % (sp, args))
while True:
rs_id+=1
data = cursor.fetchone( )
listout = parse_data_and_description(cursor, data)
print listout
if cursor.nextset( )==None:
# This means no more recordsets available
break