में वर्णों से बचने के लिए मेरे पास एक पाइथन स्क्रिप्ट है जो कच्चे मूवी टेक्स्ट फ़ाइलों को एक एसक्लाइट डेटाबेस में पढ़ती है।पायथन और स्क्लाइट
मैं आवेषण निष्पादित करने से पहले उन्हें डीबी सुरक्षित बनाने के लिए तारों में भागने के तार जोड़ने के लिए re.escape (शीर्षक) का उपयोग करता हूं।
ऐसा क्यों काम नहीं करता है:
In [16]: c.execute("UPDATE movies SET rating = '8.7' WHERE name='\'Allo\ \'Allo\!\"\ \(1982\)'")
--------------------------------------------------------------------------- OperationalError Traceback (most recent call last)
/home/rajat/Dropbox/amdb/<ipython console> in <module>()
OperationalError: near "Allo": syntax error
फिर भी यह (हटाया \ 'दो स्थानों पर) काम करता है:
In [17]: c.execute("UPDATE movies SET rating = '8.7' WHERE name='Allo\ Allo\!\"\ \(1982\)'") Out[17]: <sqlite3.Cursor object at 0x9666e90>
मैं इसे समझ नहीं कर सकते हैं। मैं उन प्रमुख उद्धरणों को भी नहीं हटा सकता क्योंकि वे वास्तव में फिल्म के शीर्षक का हिस्सा हैं। धन्यवाद।
बिल्कुल। उद्धरण और भागने अंतिम संसाधन kludges हैं। यदि पैरामीटर उपलब्ध हैं, तो उन्हें _always_ – Javier
बीटीडब्लू का उपयोग करें, वही विचार वहां भी नाम के लायक हर दूसरे डेटाबेस के लिए और लगभग हर दूसरे व्यावहारिक प्रोग्रामिंग भाषा में भी काम करता है। * हर कोई * इसे इस तरह से करता है क्योंकि यह * सही * है। –
बहुत बढ़िया धन्यवाद डोनाल। अब सब ठीक काम कर रहे हैं। मैं RoR के साथ समान विधियों का उपयोग करता था, जहां यह अच्छी तरह से प्रलेखित है। लेकिन "पायथन स्क्लाइट से बचने वाले पात्रों" के लिए खोज करने के घंटों ने कुछ भी नहीं दिया। पायथन डॉक्स वांछित होने के लिए बहुत छोड़ देते हैं।धन्यवाद डोनाल और सभी –