2

Python 2.6 でこのエラーを処理するにはどうすればよいですか?

Traceback (most recent call last):
  File "./fetch_xml_collect.py", line 32, in <module>
    tree=ET.parse(response)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/etree/ElementTree.py", line 862, in parse
    tree.parse(source, parser)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/etree/ElementTree.py", line 587, in parse
    self._root = parser.close()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/etree/ElementTree.py", line 1254, in close
    self._parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: unclosed token: line 56, column 1

現在実装されているコード:

while urlget==1:
        try:
                response = urllib.urlopen(rep)
        except IOError:
                print("reason")
        else:
                try:
                        tree=ET.parse(response)
                except IOError:
                        print("XML Parse Error\n")
                else:
                        root=tree.getroot()
                        print root[0].text
                        powerlist=tree.findall('meter/power')
                        print powerlist[0].tag,powerlist[0].text

問題は、指定されたコードで上記のエラーをどのように処理するかです。

4

1 に答える 1

7
try:
   #Some code
   ...
except xml.parsers.expat.ExpatError, ex:
   print ex
   continue

上記のようなものが機能するはずです。そのエラーcontinueが発生した場合にのみ。ループで次の反復を続行するか、最後の反復の場合はループから抜け出します。

XML の形式が正しくないため、処理できません。それをスキップして、次に進みます。

于 2013-04-09T20:19:48.333 に答える