का उपयोग कर क्वेरी परिणाम से कॉलम नाम प्राप्त करें क्या pymssql परिणामों से कॉलम नाम प्राप्त करने का कोई तरीका है? अगर मैं as_dict = true निर्दिष्ट करता हूं तो मुझे एक शब्दकोश वापस मिलता है, जिसमें सभी कॉलम हेडर होते हैं, लेकिन चूंकि यह एक शब्दकोश है, उन्हें आदेश नहीं दिया जाता है।pymssql
Q
pymssql
6
A
उत्तर
14
pymssql पाइथन DB-API का समर्थन करने का दावा करता है, इसलिए आपको अपने कर्सर ऑब्जेक्ट से .description
विशेषता प्राप्त करने में सक्षम होना चाहिए।
.description
This read-only attribute is a sequence of 7-item sequences. Each of these sequences contains information describing one result column: (name, type_code, display_size, internal_size, precision, scale, null_ok)
तो, "आंतरिक" दृश्यों में से प्रत्येक में पहले आइटम प्रत्येक स्तंभ के लिए नाम है।
0
यह एक बुनियादी समाधान है और इसे अनुकूलित करने की आवश्यकता है लेकिन नीचे दिया गया उदाहरण सूची में कॉलम हेडर और कॉलम मान दोनों देता है।
import pymssql
def return_mssql_dict(sql):
try:
con = pymssql.connect(server, user, password, database_name)
cur = con.cursor()
cur.execute(sql)
def return_dict_pair(row_item):
return_dict = {}
for column_name, row in zip(cur.description, row_item):
return_dict[column_name[0]] = row
return return_dict
return_list = []
for row in cur:
row_item = return_dict_pair(row)
return_list.append(row_item)
con.close()
return return_list
except Exception, e:
print '%s' % (e)
2
एक भी अल्पविराम से अलग लाइन पर स्तंभ नाम पाने के लिए।
colNames = ""
for i in range(len(cursor.description)):
desc = cursor.description[i]
if i == 0:
colNames = str(desc[0])
else:
colNames += ',' + str(desc[0])
print colNames
वैकल्पिक रूप से, कॉलम नामों को एक सूची में पास करें और उन्हें स्ट्रिंग के रूप में प्राप्त करने के लिए .join का उपयोग करें।
colNameList = []
for i in range(len(cursor.description)):
desc = cursor.description[i]
colNameList.append(desc[0])
colNames = ','.join(colNameList)
print colNames
1
आप आदेश दिया स्तंभ कर्सर वर्णन विशेषता पर सूची समझ का उपयोग कर नामों की एक सूची बना सकते हैं:।
column_names = [item[0] for item in cursor.description]
संबंधित मुद्दे
- 1. pymssql
- 2. pymssql
- 3. मैं pymssql
- 4. pymssql और प्लेसहोल्डर्स
- 5. pymssql बनाम pyodbc बनाम adodbapi बनाम ...
- 6. पायथन 2.7 के साथ विंडोज़ पर pymssql कैसे स्थापित करें?
- 7. pymssql का उपयोग कर SQL सर्वर डेटाबेस से कनेक्ट नहीं हो सकता है लेकिन अंतर्निहित freetds tsql
- 8. gcc: _mssql.c: ऐसी कोई फ़ाइल या निर्देशिका
- 9. पायथन में MSSQL 2.7
- 10. मैं पाइथन के साथ SQL पैरामीटर का उपयोग कैसे करूं?
- 11. "अवैध" यूनिकोड वर्णों को कनवर्ट या स्ट्रिप करें
- 12. क्या मैं एमएस एसक्यूएल में पाइथन पांडस डेटाफ्रेम निर्यात कर सकता हूं?
- 13. अजगर
- 14. QuerySelectField, एक सर्वर पर काम करता है एक ही कोड
वास्तव में अजगर जिस तरह से यह है क्या करने के लिए "," में शामिल होने के (cursor.description) –
। डिस्क्रिप्शन 7-आइटम टुपल्स की एक सूची है, इसलिए "," शामिल हों (कर्सर डिस्क्रिप्शन) ऐसा नहीं करेगा। – Robert