मैं उपयोग कर रहा हूँ कोड:
import urllib2 import csv से bs4 आयात BeautifulSoup url = "Http://en.wikipedia.org/wiki/List_of_ongoing_armed_conflicts" सूप = खूबसूरत सूप (urllib2.urlopen (url)) fl = ओपन ('locations.csv', 'w') def अद्वितीय (देश): देखा = सेट ( ) देशों में देश के लिए: एल = country.lower () अगर एल में देखा: देखा जारी रखें। (एल) उपज देश locs = [] सूप में पंक्ति के लिए। चयन ('table.wikitable tr'): कोशिकाओं = पंक्ति यदि कोशिकाओं में स्थान के लिए कोशिकाएं हैं, तो खोज_ल ('टीडी'): [3] .find_all (टेक्स्ट = ट्रू): locs.extend (location.split ()) locs2 = [] अनन्य स्थानों (स्थानों) के लिए: स्थानों = locs2 सॉर्ट किया गया (लोकस 2) में मूल्यों के लिए (स्थान.split ()) प्रिंट सॉर्ट किया गया (लोकस 2) लेखक = csv.writer (fl) writer.writerow (['location']): writer.writerow (values) fl.close ()
जब मैं लिख रहा हूँ, कोड को प्रिंट करता हूं, मुझे u '
मिलता है प्रत्येक तत्व के सामने जो मुझे लगता है कि यह इस तरह से काम कर रहा है। मैंने .strip (u ')
का उपयोग करने की कोशिश की लेकिन मुझे यह एक त्रुटि मिलती है कि .strip
का उपयोग नहीं किया जा सकता क्योंकि यह एक सूची है मैं क्या कर रहा हूं?
locs2
स्ट्रिंग्स के साथ एक सूची है, न कि सूचियों की एक सूची जैसा कि आप एक पंक्ति के रूप में व्यक्तिगत तार लिखने का प्रयास कर रहे हैं:
क्रमबद्ध (locs2) में मान के लिए: writer.writerow (मान)
यहाँ < कोड> मान एक स्ट्रिंग है, और writerow ()
इसे एक अनुक्रम के रूप में मानता है
यदि आप सभी स्थानों को एक पंक्ति के रूप में लिखना चाहते हैं, तो पूरी सूची को लेखक। लेखक ()
:
writer.writerow (सॉर्ट किया गया (locs2))
यदि आप के लिए एक नई पंक्ति लिखना चाहते हैं प्रत्येक व्यक्तिगत स्थान, इसे सूची में पहले लपेटो:
सॉर्ट किए गए स्थान (locs2) के लिए: writer.writerow ([location])
आप डॉन स्ट्रिंग से u
उपसर्गों की आवश्यकता नहीं है; यह सिर्फ पायथन आपको बता रहा है कि आपके पास यूनिकोड स्ट्रिंग ऑब्जेक्ट्स, बाइट स्ट्रिंग ऑब्जेक्ट नहीं हैं:
& gt; & gt; & gt; 'एएससीआईआई बाइट स्ट्रिंग' 'एएससीआईआई बाइट स्ट्रिंग' & gt; & gt; & gt; 'एएससीआईआई यूनिकोड स्ट्रिंग' .एकोड ('एएससीआई') यूएसएसीआईआई यूनिकोड स्ट्रिंग '
अगर आप पायथन और यूनिकोड के बारे में अधिक जानना चाहते हैं तो निम्न जानकारी देखें:
No comments:
Post a Comment