शुरू करेंमुफ़्त में शुरू करें

रिकॉर्ड्स के ब्लॉक्स पर काम करना

अब तक बढ़िया काम! जैसा कि Jason ने वीडियो में समझाया, कभी-कभी आपको एक बड़े ResultProxy पर काम करने की ज़रूरत पड़ सकती है, और आपके पास एक ही बार में सभी रिज़ल्ट्स मेमोरी में लोड करने की क्षमता नहीं होती. इस समस्या से निपटने के लिए, आप लूप के भीतर .fetchmany() मेथड का उपयोग करके ResultProxy से पंक्तियों के ब्लॉक्स प्राप्त कर सकते हैं. .fetchmany() के साथ, उसे उन रिकॉर्ड्स की संख्या बताइए जो आप चाहते हैं. जब आपको खाली लिस्ट मिलती है, तो और पंक्तियाँ फेच करने के लिए नहीं बची होतीं, और आपने क्वेरी के सभी रिज़ल्ट्स प्रोसेस कर लिए होते हैं. फिर आपको डेटाबेस से कनेक्शन बंद करने के लिए .close() मेथड का उपयोग करना होता है.

अब आपको results_proxy नाम के एक बड़े ResultProxy पर यह अभ्यास करने का मौका मिलेगा, जिसे आपके लिए पहले से लोड किया गया है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Databases का परिचय

पाठ्यक्रम देखें

अभ्यास निर्देश

  • एक while लूप का उपयोग करें जो यह जाँचता रहे कि more_results हैं या नहीं.
  • लूप के अंदर, results_proxy पर .fetchmany() मेथड लगाकर एक समय में 50 रिकॉर्ड्स लें और उन्हें partial_results के रूप में स्टोर करें.
  • रिकॉर्ड्स फेच करने के बाद, अगर partial_results एक खाली लिस्ट है (यानी [] के बराबर है), तो more_results को False सेट करें.
  • partial_results पर लूप कीजिए और अगर row.state, state_count डिक्शनरी में एक key है, तो state_count[row.state] को 1 से बढ़ाएँ; अन्यथा state_count[row.state] को 1 सेट करें.
  • while लूप के बाद, .close() का उपयोग करके ResultProxy results_proxy को बंद करें.
  • state_count प्रिंट कराने के लिए उत्तर सबमिट करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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)
कोड संपादित करें और चलाएँ