Pb with an AttributeError

Eric BOUVIER ebouvier at jetmultimedia.fr
Thu Sep 27 12:38:24 EDT 2007


 Thanks, 

I find the "type" function and effectively the type is a dict. 
I didn't know this type before !  :-}

The program normally try to get the value of SP between the <> 
in the string1. Here, it's 136. 
The string1 is normally longer and had a lot of "<value>" but only one 
with "<value>=".

I find str() and applied it to tranform the type 'dict' in a sting type.
Thus, I arrived to get "136" with regular expression.

   Thanks


> -----Message d'origine-----
> De : Nathan Harmston [mailto:ratchetgrid at googlemail.com] 
> Envoyé : jeudi 27 septembre 2007 18:16
> À : Eric BOUVIER
> Cc : python-list at python.org
> Objet : Re: Pb with an AttributeError
> 
> Hi,
> 
> I m not sure what your trying to do, but this is where your 
> problem is:
> 
> string1 is not a string it is actually a dict because of your eval.
> When you call
> string1["param"] inside the string.split()
> 
> it is returning a dictionary and not a string....
> 'param': {'key': 'SP<136>=', 'value': ['SD:<0> ']}
> 
> since {'key': 'SP<136>=', 'value': ['SD:<0> ']} is inside curly
> brackets it is a dictionary.
> 
> I still dont get what your trying to have as your final result, but
> hope this helps.
> 
> Thanks
> 
> Nathan
> 
> On 27/09/2007, Eric BOUVIER <ebouvier at jetmultimedia.fr> wrote:
> >
> >
> >
> > Hello,
> >
> > First, sorry for my english.
> >
> > I've just been assigned a project written in Python which 
> contains bug(s).
> > I've never programmed in Python, but I've read the code
> > and understood basically what the different source codes do.
> >
> > I've traced the code and found where the problem is but I don't
> > know how to solve the problem.
> >
> > Here it is :
> >
> > I've got a string issued from a CSV file :
> >    string1 = eval(line[4])
> >    print " * string1 = (", string1 ,") \n"
> >         =>  * string1 = ( {'header': 'X-Score', 'param': 
> {'key': 'SP<136>=',
> > 'value': ['SD:<0> ']} )
> >
> > Then, there is a split with the equal :
> >    TheParts = string.split(string1["param"], "=")
> >    print " * TheParts = (", TheParts ,") \n"
> >
> > But, running the program returns :
> >
> > Traceback (most recent call last):
> >   File "C:\test\helper.py", line 136, in Action_handler
> >     Score_eval(line, OutputFile_SP, This_Host)
> >   File "C:\test\helper.py", line 66, in Score_eval
> >     TheParts = string.split(string1["param"], "=")
> >   File "C:\ActiveState\Python25\lib\string.py", line 290,
> > in split
> >     return s.split(sep, maxsplit)
> > AttributeError: 'dict' object has no attribute 'split'  !?!
> >
> > I've found that it works when I put directly the string in the split
> > expression :
> >
> >    TheParts = string.split(" {'key': 'ESP<136>=', 'value': 
> ['SHA:<0> ']} ",
> > "=")
> >       => * TheParts =   ["{'key': 'ESP<136>", "', 'value': 
> ['SHA:<0> ']}"]
> >
> >   But the code isn't dynamic anymore !
> > I think it's a problem with the type, but the different 
> syntax I've tried
> > didn't work.
> > Is somebody could help me ?
> >
> >  Thank you
> > --
> > http://mail.python.org/mailman/listinfo/python-list
> >
> 



More information about the Python-list mailing list