Thank you for your input. I tried what you suggested by first just trying to loop through the data like so:
" test_output = 0 for obj in serializers.deserialize('json', gantt_data)['ganttgroups']: test_output = test_output + 1 " This generated the following error: "'generator' object is unsubscriptable" I tried changing it slightly, moving "['ganttgroups']" inside the brackets, to this: " test_test_output = 0 for obj in serializers.deserialize('json', gantt_data['ganttgroups']): test_output = test_output + 1 " This generated the error I originally received: "string indices must be integers" I am just so new to this that I'm not sure where to go from here. Do you have any other suggestions as to what I may be doing wrong? Again, any help with this would be greatly appreciated. On Sep 3, 1:09 pm, "J. Cliff Dyer" <j...@sdf.lonestar.org> wrote: > I suspect your error is hiding in <loop logic here>. What do you expect > obj to be? Your JSON should return a big dictionary with one key > ("ganttgroups"). When you iterate over a dictionary in python, you get > the keys of that dictionary. In this case, the string "ganttgroups". > You may be doing the following: > > for obj in serializers.deserialize("json", gantt_data): > do_something_to(obj['gantts']) > > which returns an error, because it evaluates to "ganttgroups"['gantts'] > (which would give you the error you see. > > What you want is more like: > > for obj in serializers.deserialize('json', gantt_data)['ganttgroups']: > start = obj['start'] > for gantt in obj['gantts']: > for row in gantt['rows']: > print row['own'] > > In short, you're getting your dicts and lists mixed up, or your keys and > values. > > Cheers, > Cliff > > On Wed, 2009-09-02 at 10:40 -0700, Eric wrote: > > I forgot to mention that I am trying to deserialize the data as > > follows: > > > " > > ... > > gantt_data = request.POST.get('ganttdata') > > > for obj in serializers.deserialize("json", gantt_data): > > <loop logic here> > > ... > > " > > > On Sep 2, 10:37 am, Eric <elezo...@gmail.com> wrote: > > > Hi, > > > I am attempting to parse a json string passed to my view via a form > > > post. A simple example of my json structure is as follows (indented > > > for readability): > > > > { > > > "ganttgroups":[ > > > { > > > "gantts":[ > > > { > > > "rows":[ > > > {"stt":1, "end":2, "ttl":"test row - gr1 ga1 > > > ta1", "own":"Tim Johnson"}, > > > {"stt":2, "end":3, "ttl":"my row (g1 t2)", > > > "own":"John Doe"}, > > > {"stt":1, "end":2, "ttl":"test row - gr1 ga1 > > > ta3", "own":"Mary Smith"} > > > ] > > > }, > > > { > > > "rows":[ > > > {"stt":1, "end":2, "ttl":"My 4th task", > > > "own":"Eric Johnson"}, > > > {"stt":1, "end":2, "ttl":"my row (g2 t2)", > > > "own":"Jeff Smith"}, > > > {"stt":1, "end":2, "ttl":"test row - gr1 ga2 > > > t3", "own":"Bill Baker"} > > > ] > > > } > > > ], > > > "start":"2009-1-01" > > > } > > > ,{ > > > "gantts":[ > > > { > > > "rows":[ > > > {"stt":1, "end":2, "ttl":"row - gr2 ga1 t1", > > > "own":"Ted Tillman"}, > > > {"stt":1, "end":2, "ttl":"row - gr2 ga1 t2", > > > "own":"Kim Crane"}, > > > {"stt":1, "end":2, "ttl":"row - gr2 ga1 t3", > > > "own":"Bob Barker"} > > > ] > > > } > > > ], > > > "start":"2009-1-01" > > > } > > > ] > > > > } > > > > I would like to parse it so that I can loop over the pairs/arrays to > > > access the data. When I try to deserialize the data, I get the django > > > error "string indices must be integers". Can anybody please help me > > > determine what exactly this means and how I may fix this? Is there > > > another method I should be using? I am obviously a bit of a newbie at > > > this so any help would be greatly appreciated. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---