Home:ALL Converter>How to fix this AttributeError?

How to fix this AttributeError?

Ask Time:2011-11-16T23:06:35         Author:Zeynel

Json Formatter

I installed a stripe package yesterday and now my app is not running. I am trying to understand where the problem is. Is it something to do with PyShell or HTLParser or something else. I am posting with GAE tag as well hoping that the trace from logs may give a clue about the problem:

MLStripper instance has no attribute 'rawdata'
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/ting-1/1.354723388329082800/ting.py", line 2070, in post
    pitch_no_tags = strip_tags(pitch_original)
  File "/base/data/home/apps/ting-1/1.354723388329082800/ting.py", line 128, in strip_tags
    s.feed(html)
  File "/base/python_runtime/python_dist/lib/python2.5/HTMLParser.py", line 107, in feed
    self.rawdata = self.rawdata + data
AttributeError: MLStripper instance has no attribute 'rawdata'

This is MLStripper:

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        set()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

MLStripper was working fine until yesterday.

And these are my other questions:

https://stackoverflow.com/questions/8152141/how-to-fix-this-attributeerror-with-htmlparser-py

https://stackoverflow.com/questions/8153300/how-to-fix-a-corrupted-pyshell-py

Author:Zeynel,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/8153823/how-to-fix-this-attributeerror
ekhumoro :

There are one or two issues with the code you posted (mainly to do with initializing the HTMLParser properly).\n\nTry running this amended version of your script:\n\nfrom HTMLParser import HTMLParser\n\nclass MLStripper(HTMLParser):\n def __init__(self):\n # initialize the base class\n HTMLParser.__init__(self)\n\n def read(self, data):\n # clear the current output before re-use\n self._lines = []\n # re-set the parser's state before re-use\n self.reset()\n self.feed(data)\n return ''.join(self._lines)\n\n def handle_data(self, d):\n self._lines.append(d)\n\ndef strip_tags(html):\n s = MLStripper()\n return s.read(html)\n\nhtml = \"\"\"Python's <code>easy_install</code>\n makes installing new packages extremely convenient.\n However, as far as I can tell, it doesn't implement\n the other common features of a dependency manager -\n listing and removing installed packages.\"\"\"\n\nprint strip_tags(html)\n",
2011-11-16T15:27:26
Grant Curell :

This error also appears if you override the reset method in HTMLParser class.\n\nIn my case I had added a method named reset for some other functionality and discovered that while Python does not tell you there is a problem with doing this (nor was there any indication I was overriding anything), it breaks the HTMLParser class.",
2016-05-24T02:20:10
SoSen :

You need to call the init in superclass HTMLParser.\n\nyou can also do it by using\n\nclass MLStripper(HTMLParser):\n def __init__(self):\n super(MLStripper, self).__init__()\n set()\n self.fed = []\n",
2019-07-12T11:08:33
yy