के साथ पांडा से SQL सर्वर में डेटा प्राप्त करें मैं समझने की कोशिश कर रहा हूं कि पाइथन एक FTP सर्वर से डेटा को पांडा में कैसे खींच सकता है और इसे SQL सर्वर में ले जाया जा सकता है। यहां मेरा कोड कम से कम कहने के लिए बहुत ही प्राथमिक है और मैं किसी भी सलाह या मदद की तलाश में हूं। मैंने पहले FTP सर्वर से डेटा लोड करने का प्रयास किया है जो ठीक काम करता है .... अगर मैं इस कोड को हटा देता हूं और इसे ms sql सर्वर से किसी चयन में बदलता हूं तो यह ठीक है इसलिए कनेक्शन स्ट्रिंग काम करता है, लेकिन SQL में सम्मिलन सर्वर समस्या पैदा कर रहा है।PYODBC
import pyodbc
import pandas
from ftplib import FTP
from StringIO import StringIO
import csv
ftp = FTP ('ftp.xyz.com','user','pass')
ftp.set_pasv(True)
r = StringIO()
ftp.retrbinary('filname.csv', r.write)
pandas.read_table (r.getvalue(), delimiter=',')
connStr = ('DRIVER={SQL Server Native Client 10.0};SERVER=localhost;DATABASE=TESTFEED;UID=sa;PWD=pass')
conn = pyodbc.connect(connStr)
cursor = conn.cursor()
cursor.execute("INSERT INTO dbo.tblImport(Startdt, Enddt, x,y,z,)" "VALUES (x,x,x,x,x,x,x,x,x,x.x,x)")
cursor.close()
conn.commit()
conn.close()
print"Script has successfully run!"
जब मैं एफ़टीपी कोड इस पूरी तरह से चलाता है निकालने के लिए, लेकिन मुझे समझ नहीं आता कि कैसे Microsoft SQL सर्वर में इसे पाने के लिए अगले कूद बनाने के लिए, या यहां तक कि अगर यह पहली बार एक फ़ाइल में सहेजे बिना संभव है।
क्या आप जानते हैं कि 'execute' फ़ंक्शन पर पैरामीटर कैसे पास करें? यदि ऐसा है, तो आपको केवल 'डेटाफ्रेम' की पंक्तियों पर पुनरावृत्ति की आवश्यकता है और प्रत्येक के लिए, 'निष्पादित करें' पर कॉल करें और पंक्ति को SQL पैरामीटर के मानों के रूप में पास करें। या, यदि पीओओडीबीसी 'एक्जिक्यूमैन' का समर्थन करता है, तो यह भी आसान है-बस पंक्तियों के किसी भी पुनरावर्तक को पास करें, जो आपके पास पहले से है। – abarnert
कहा जा रहा है, क्या कोई कारण है कि आप यहां 'सीएसवी' के बजाय पांडों का उपयोग कर रहे हैं? आप वास्तव में डेटा के साथ पांडस-वाई कुछ भी नहीं कर रहे हैं, बस इसे खत्म कर रहे हैं। इस तरह के मामले में, 'सीएसवी' बहुत आसान है, और पूरी चीज को स्मृति में एक बार में पढ़ने की आवश्यकता नहीं है। – abarnert
उत्तर के लिए धन्यवाद मैं वास्तव में किसी अन्य कारण के लिए पांडा का उपयोग नहीं कर रहा हूं, इसके बारे में मैंने पढ़ा है और यह डेटाफ्रेम में डंप करने के लिए तार्किक लग रहा था। मेरा मूल उद्देश्य सीएसवी के साथ एसक्यूएल डेटा को एसक्यूएल में प्राप्त करना है, तो यह घटना के बाद सीवीएस फ़ाइल द्वारा ही संभव होगा? idealy मैं एक बार में एसक्यूएल में खींच और धक्का देना चाहता हूँ। डेटा के संदर्भ में –