2013-09-05 20 views
5

Mam następujący fragment kodu:funkcja Python zwraca None

def retornaReplicas(verify_key): 
    connection = sqlite3.connect('servidor.db') 
    cursor = connection.cursor() 

    sql = 'SELECT replicas FROM arquivos_sad WHERE verify_key="%s"' % (verify_key) 
    cursor.execute(sql) 
    resultado = cursor.fetchone() 

    return '@'.join(resultado) 

jestem debugowania tego kodu na Python interaktywnym terminalu i jeśli mam zrobić:

print retornaReplicas(verify_key) 

powraca 'Brak'. Ale jeśli ręcznie wpisuję polecenia (zamiast funkcji):

connection = sqlite3.connect('servidor.db') 
cursor = connection.cursor() 

sql = 'SELECT replicas FROM arquivos_sad WHERE verify_key="%s"' % (verify_key) 
cursor.execute(sql) 
resultado = cursor.fetchone() 
print '@'.join(resultado) 

to działa. Python również nie daje żadnych błędów. Dlaczego ten powrót nie działa?

BTW, verify_key to UUID, który ustawiam ręcznie do celów debugowania (i jest to znana wartość), a ten kod korzysta z baz danych sqlite3 w celu konsultacji.

+2

Czy możesz przesłać resztę kodu? Podejrzewam coś o twoim 'imporcie' –

+2

Kod działa dobrze dla mnie (chociaż bym użył parametrów SQL zamiast interpolacji). –

Odpowiedz

1

Przepraszam, teraz zadziałało. Sądzę, że coś, co zaimportowałem wcześniej, stworzyło dziwny błąd czy coś takiego. Po wyjściu ze starej muszli i otwarciu kolejnej zadziałało.

Btw, po prostu nie publikuję całego kodu, ponieważ jest to krwawy bałagan. Naprawdę mi się to nie podoba, ale to nie jest mój kod i nie mam czasu na napisanie tego (jest to mój projekt, aby ukończyć studia z zakresu informatyki).

+0

Proszę oznaczyć własną odpowiedź jako poprawną, aby odpowiedź nie była już wyświetlana na liście pytań bez odpowiedzi. –