पायथन स्क्रिप्ट में, मैं एक ही तर्क का उपयोग करके विभिन्न HTML स्ट्रिंग्स का परीक्षण करना चाहता था। मेरा दृष्टिकोण HTML स्ट्रिंग वेरिएबल्स के कई उदाहरण बनाने के लिए एक सीमा के माध्यम से लूप करना था, लेकिन यह अपेक्षा के अनुरूप काम नहीं कर रहा था।
# DO NOT DO THIS for i in range(1, 5): html = f"html{i}" soup = BeautifulSoup(html, "html.parser") print('----', soup)
जो व्यवहार मैं देख रहा था वह स्वरूपित स्ट्रिंग f"html{i}" की व्याख्या के तरीके के कारण है। मेरे कोड में, f"html{i}" का मूल्यांकन html1, html2, आदि नामक वेरिएबल्स की सामग्री के बजाय शाब्दिक रूप से "html1", "html2", "html3" और "html4" के आधार पर किया जाता है।
पायथन स्वचालित रूप से f"html{i}" को उस वेरिएबल के मान से प्रतिस्थापित नहीं करता है जिसका नाम गतिशील रूप से बनाया गया है जैसे html1 या html2। इसके बजाय, यह स्ट्रिंग का मूल्यांकन एक निश्चित पैटर्न के रूप में करता है जिसमें उपसर्ग "html" और उसके बाद i का मान शामिल होता है।
यदि मैं पूर्व-परिभाषित चर HTML1, html2, आदि की सामग्री का उपयोग करना चाहता हूं, तो मुझे उनके मूल्यों को स्पष्ट रूप से पुनर्प्राप्त करने की आवश्यकता है, उदाहरण के लिए स्ट्रिंग नामों को उनकी वास्तविक सामग्री में मैप करने के लिए एक शब्दकोश का उपयोग करना।
इसे दर्शाने वाला एक उदाहरण यहां दिया गया है:
from bs4 import BeautifulSoup # Define the variables html1 = "Test 1" html2 = "Test 2" html3 = "Test 3" html4 = "Test 4" # Store them in a dictionary for easy access html_dict = { "html1": html1, "html2": html2, "html3": html3, "html4": html4 } # Iterate and process each html content for i in range(1, 5): key = f"html{i}" html = html_dict[key] soup = BeautifulSoup(html, "html.parser") print('----', soup)
चर को परिभाषित करें:
वैरिएबल लुकअप के लिए शब्दकोश:
कुंजियों पर पुनरावृति:
पार्स और प्रिंट:
---- Test 1 ---- Test 2 ---- Test 3 ---- Test 4
यह दृष्टिकोण पुनरावृत्ति सूचकांक के आधार पर चर की सामग्री को गतिशील रूप से एक्सेस करता है और इच्छित सामग्री को सही ढंग से प्रिंट करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3