BaşlayınÜcretsiz başlayın

Kayıt bloklarıyla çalışma

Şimdiye kadar harika gidiyorsun! Jason’ın videoda anlattığı gibi, bazen büyük bir ResultProxy ile çalışman gerekebilir ve tüm sonuçları bir kerede belleğe sığdıracak kapasiten olmayabilir. Bu sorunu aşmak için, döngü içinde .fetchmany() yöntemini kullanarak ResultProxy’den satırları bloklar halinde alabilirsin. .fetchmany() ile, istediğin kayıt sayısını argüman olarak verirsin. Boş bir listeye ulaştığında, alınacak başka satır kalmamış demektir ve sorgunun tüm sonuçlarını işlemiş olursun. Sonrasında veritabanı bağlantısını kapatmak için .close() yöntemini kullanman gerekir.

Şimdi, senin için önceden yüklenmiş olan ve üzerinde çalışabileceğin results_proxy adlı büyük bir ResultProxy üzerinde bunu pratik etme şansın olacak.

Bu egzersiz, kursun bir parçasıdır

Python ile Veritabanlarına Giriş

Kursa Göz Atın

Egzersiz talimatları

  • more_results olup olmadığını kontrol eden bir while döngüsü kullan.
  • Döngünün içinde, results_proxy üzerinde .fetchmany() yöntemini uygulayarak her seferinde 50 kayıt al ve bu kayıtları partial_results olarak sakla.
  • Kayıtları aldıktan sonra, partial_results boş bir listeyse (yani [] ise), more_results değerini False yap.
  • partial_results üzerinde döngü kur ve eğer row.state, state_count sözlüğünde bir anahtarsa state_count[row.state] değerini 1 artır; aksi halde state_count[row.state] değerini 1 olarak ayarla.
  • While döngüsünden sonra, .close() kullanarak results_proxy ResultProxy nesnesini kapat.
  • state_count yazdırılsın diye yanıtı gönder.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Start a while loop checking for more results
while more_results:
    # Fetch the first 50 results from the ResultProxy: partial_results
    partial_results = ____

    # if empty list, set more_results to False
    if partial_results == []:
        more_results = ____

    # Loop over the fetched records and increment the count for the state
    for row in ____:
        if row.state in state_count:
            ____
        else:
            ____

# Close the ResultProxy, and thus the connection
results_proxy.____

# Print the count by state
print(state_count)
Kodu Düzenle ve Çalıştır