2016-02-04 11 views
7

मैं पाइडबैक का उपयोग कर पहली 10 पंक्तियों को मुद्रित करने की कोशिश कर रहा हूं। मुझे पता है कि निम्नलिखित का उपयोग करके पहले रिकॉर्ड प्राप्त करने के लिए:पायोडबैक - पहले 10 पंक्तियां (पायथन) प्रिंट करें

row = cursor.fetchall() 

मैं करने के लिए इस बदलते कोशिश की:

row = cursor.fetchten() 

लेकिन यह काम नहीं किया। क्या मुझे कुछ और करना है??

+1

'fetchall' * सभी * पंक्तियों को कर्सर के पास वापस लौटाएगा, न केवल पहले। आप वास्तव में क्या करने की कोशिश कर रहे हैं? –

+1

मैं pyodbc के साथ कुछ भी नहीं करता, इसलिए यह पूरी तरह से अस्पष्ट हो सकता है, लेकिन आप 'कर्सर.फेटचॉल() [: 10] 'नहीं कर सका? – zondo

उत्तर

4

आप सम्मिलित करें:

row = cursor.fetchmany(10) 

आप जो भी चाहें करने के लिए कोष्ठक में बदल सकते हैं।

2

on this page पर प्रलेखन के आधार पर, आपके पास सूचियों को वापस करने के लिए दो विकल्प हैं। आपके पास fetchall() विधि और fetchmany() विधि है। किसी भी मामले में, आपको काम करने के लिए पंक्तियों की एक सूची वापस कर दी गई है।

के बारे में fetchall() विधि और zondo क्या कहा के बंद पिगीबैकिंग, निम्न कार्य करता जल्दी से और कुशलता:

rows = cursor.fetchall()[:10] # to get the first 10 
rows = cursor.fetchall()[-10::1] # to get the last 10 

वैकल्पिक रूप से, आप के रूप में कई बार पंक्तियों पर पाश आप परिणाम आप की जरूरत प्राप्त करने की आवश्यकता कर सकते हैं:

rows = cursor.fetchall() 
for idx in range(10): #[0, 1, ..., 9,] 
    print(rows[idx]) # to get the first 10 
    print(rows[(len(ray)-idx)]) # to get the last 10 

वहाँ भी एक ही दस्तावेज में fetchmany() विधि, परिभाषित इस प्रकार है: cursor.fetchmany([size=cursor.arraysize]) --> list

ब्रैकेट वैकल्पिक पैरामीटर इंगित करते हैं, इसलिए आपको आकार शामिल करने की आवश्यकता नहीं है। लेकिन चूंकि आप 10 चाहते हैं, तो आप आकार पैरामीटर में 10 पास करेंगे। उदाहरण:

rows = cursor.fetchmany(size=10) 
for row in rows: 
    print(row) 
संबंधित मुद्दे