Float 'has no attribute' lower '

I ran into this error and I really can't seem to find the cause of this. Can anyone point out the reason for this?

for i in tweet_raw.comments:
    mns_proc.append(processComUni(i))

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-416-439073b420d1> in <module>()
      1 for i in tweet_raw.comments:
----> 2     tweet_processed.append(processtwt(i))
      3 

<ipython-input-414-4e1b8a8fb285> in processtwt(tweet)
      4     #Convert to lower case
      5     #tweet = re.sub('RT[\s]+','',tweet)
----> 6     tweet = tweet.lower()
      7     #Convert www.* or https?://* to URL
      8     #tweet = re.sub('((www\.[\s]+)|(https?://[^\s]+))','',tweet)

AttributeError: 'float' object has no attribute 'lower'

      

Second similar error facing this:

for i in tweet_raw.comments:
    tweet_proc.append(processtwt(i))

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-423-439073b420d1> in <module>()
      1 for i in tweet_raw.comments:
----> 2     tweet_proc.append(processtwt(i))
      3 

<ipython-input-421-38fab2ef704e> in processComUni(tweet)
     11         tweet=re.sub(('[http]+s?://[^\s<>"]+|www\.[^\s<>"]+'),'', tweet)
     12     #Convert @username to AT_USER
---> 13     tweet = re.sub('@[^\s]+',' ',tweet)
     14     #Remove additional white spaces
     15     tweet = re.sub('[\s]+', ' ', tweet)

C:\Users\m1027201\AppData\Local\Continuum\Anaconda\lib\re.pyc in sub(pattern, repl, string, count, flags)
    149     a callable, it passed the match object and must return
    150     a replacement string to be used."""
--> 151     return _compile(pattern, flags).sub(repl, string, count)
    152 
    153 def subn(pattern, repl, string, count=0, flags=0):

TypeError: expected string or buffer

      

Should I check to see if a tweet is eligible before passing it to the processtwt () function? For this error, I don't even know which line it doesn't work on.

+3


source to share


3 answers


try it



if type(tweet) is str:
        tweet = tweet.lower()

      

+6


source


My answer will be broader than the answer of shalini. If you want to check if an object has a type str

, then I suggest you check the type

object using isinstance()

as shown below. This is a more pythonic way.

tweet = "stackoverflow"

## best way of doing it
if isinstance(tweet,(str,)):
    print tweet

## other way of doing it
if type(tweet) is str:
    print tweet

## This is one more way to do it
if type(tweet) == str:
    print tweet

      



All of the above works great to check the type of an object as string or not.

+2


source


Just try using this: tweet = str (tweet) .lower ()

I've been running into many of these errors lately and converting them to string before applying lower () has always worked for me. Thank!

0


source







All Articles