私はmysqlデータベースと話すためにMySQLdbを使用しており、すべての結果セットを動的に取り出すことができます。mysqldbはタイムスタンプデータをNoneに変換します
私の問題は、結果セットを取得すると、mysqlにタイムスタンプとして宣言されている列がいくつかありますが、取得時にNoneになります。
私は2つの列を持っていますが、どちらもタイムスタンプとして宣言されていますが、一方は正しいデータを返します。 utimeとenddateの両方がタイムスタンプとして宣言されていますが、enddateの間はutimeは正しく返されません。誰も答えていないか、より多くの情報を見つけることを試みた後
['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
なぜこの回答が投票されたのですか?事実、3年後にもまだバグは修正されていませんでしたが、私にとっては興味深い事実でした(そして私は他の人にもそうなると信じています)。さらに、それは私のために働くソースと解決策を述べています。 – Fantilein1990
私は分かりません。これは私にとって有望ですが、あなたの答えがなければ、私は回避策なしで残されます。 – thegiffman