Używam MySQLdb do rozmowy z bazą danych mysql i jestem w stanie dynamicznie pobierać wszystkie zestawy wyników.mysqldb konwertuje dane sygnatury czasowej na Brak
Mój problem polega na tym, że gdy otrzymam zestaw wyników, jest kilka kolumn, które są zadeklarowane jako znaczniki czasu w mysql, ale gdy są pobierane, zmieniają się na None.
Mam dwie kolumny, obie są deklarowane znaczniki czasu, ale jeden zwraca poprawne dane, a inne zwraca Brak. Zarówno utime, jak i data końcowa są zadeklarowanymi znacznikami czasu, ale utime nie zwraca poprawnie, gdy kończy się data końcowa.
['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
Dlaczego ta odpowiedź została odrzucona? Fakt, że trzy lata później błąd nadal nie został naprawiony, był dla mnie interesujący (i moim zdaniem będzie również dla innych). Ponadto podaje źródło i rozwiązanie, które zadziałało dla mnie. – Fantilein1990
Nie wiem, stary. Wydaje mi się to obiecujące, a bez twojej odpowiedzi pozostanę bez obejścia. – thegiffman