मैं lxml का उपयोग कर एक HTML दस्तावेज़ को पार्स करना चाहता हूं। मैं अजगर 3.2.3 और lxml 2.3.4 (http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml)lxml etree.iterparse त्रुटि "TypeError: फ़ाइल ऑब्जेक्ट्स को पढ़ने के लिए सादे तारों को वापस करना होगा"
मैं etree.iterparse
उपयोग कर रहा हूँ दस्तावेज़ को पार्स करने का उपयोग कर रहा है, लेकिन यह निम्नलिखित रन-टाइम त्रुटि देता है:
Traceback (most recent call last):
File "D:\Eclipse Projects\Python workspace\Crawler\crawler.py", line 12, in <module>
for event, elements in etree.iterparse(some_file_like):
File "iterparse.pxi", line 491, in lxml.etree.iterparse.__next__ (src/lxml\lxml.etree.c:98565)
File "iterparse.pxi", line 512, in lxml.etree.iterparse._read_more_events (src/lxml\lxml.etree.c:98768)
TypeError: reading file objects must return plain strings
सवाल यह है: इस रन-टाइम त्रुटि को कैसे हल करें?
बहुत बहुत धन्यवाद।
यहाँ कोड है:
from io import StringIO
from lxml import etree
some_file_like = StringIO("<root><a>data</a></root>")
for event, elements in etree.iterparse(some_file_like): #<-- Run-time error happens here
print("%s, %4s, %s" % (event, elements.tag, elements.text))
प्रतिक्रिया के लिए धन्यवाद। मैंने आपके सुझाव की कोशिश की लेकिन उसने निम्नलिखित रन-टाइम त्रुटि दी: TypeError: प्रारंभिक_वल्यू स्ट्रेट या कोई नहीं होना चाहिए, बाइट्स –
स्पष्ट रूप से आपको बाइट्स के लिए 'बाइट्सियो' और तारों के लिए 'स्ट्रिंगियो' का उपयोग करने की आवश्यकता नहीं है (पुराने 'स्ट्रिंगियो' के विपरीत जो कि दोनों के लिए इस्तेमाल किया जाना चाहिए)। मेरा जवाब तय किया। – Imran
आपका सुधार काम करता है। धन्यवाद :) –