[Tutor] Program gets stuck after a creating a list from dictinary items!

Ali Torkamani torkamani at gmail.com
Fri Jul 6 18:27:17 CEST 2012


Thanks, I checked,  FD is not empty,
Thanks for reminding about the flush and close, but I think some thing is
wrong with:
D=[prog[key1] for key1 in sCommonFeatures]

In the debug mode it works fine from the command line, but in the for loop
it gets stuck.

Ali

On Fri, Jul 6, 2012 at 12:22 PM, Prasad, Ramit <ramit.prasad at jpmorgan.com>wrote:

> From: Ali Torkamani
> > I'm trying to write a dictionary into a csv file, in the following code
> > FlatData is the global dictionary whose keys are datetime objects, and
> the
> > values are list of dictionaries. sCommonFeatures are key's that exist in
> all
> > of such 'sub'-dictionaries, and sOtherFeatures are the key's that are in
> some
> > of sub-dictionaries.
> >
> > The problem is that in line : D=[prog[key1] for key1 in sCommonFeatures]
> > (line 10 below), the program stucks!
>
> Gets stuck how? I see nothing in that line that looks invalid. It may just
> take awhile depending on the amount of keys it has to go through. Maybe
> you just need to wait longer?
>
> >
> > I appreciate any help.
> >
> > def WriteOneDayToCSV(sCommonFeatures,sOtherFeatures,date):
> >     FD=FlatData[date]
> >
> >
> A=['UniqeDate','Year','Month','Day']+list(sCommonFeatures)+list(sOtherFeatures
> > )
> >     pdb.set_trace()
> >     with
> > open(str(date.year)+"_"+str(date.month)+"_"+str(date.day)+".csv",'wb') as
> > myfile:
> >         fout = csv.writer(myfile, delimiter=',', quotechar="'")
> >
> >         fout.writerow(A)
> >         for prog in FD:
>
> Try inserting a print here to make sure FD is not an empty list.
>
> >             D=[prog[key1] for key1 in sCommonFeatures]
> >             print(prog)
> >             pdb.set_trace()
> >             diff=sOtherFeatures.difference(prog.keys())
> >             prog.update({x:'NONE' for x in diff})
> >
> >             C=[prog[key2] for key2 in sOtherFeatures]
> >             A=["%4d%02d%02d"
> > %(date.year,date.month,date.day),date.year,date.month,date.day]
> >             fout.writerow(A+D+C)
> >             pdb.set_trace()
> >         myfile.flush()
> >         myfile.close()
>
> There is no need to flush/close a file that is opened using "with".
>
> Ramit
>
>
> Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology
> 712 Main Street | Houston, TX 77002
> work phone: 713 - 216 - 5423
>
> --
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20120706/181ae697/attachment.html>


More information about the Tutor mailing list