"IamIan" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] | Hello, | | I'm writing a simple FTP log parser that sums file sizes as it runs. I | have a yearTotals dictionary with year keys and the monthTotals | dictionary as its values. The monthTotals dictionary has month keys | and file size values. The script works except the results are written | for all years, rather than just one year. I'm thinking there's an | error in the way I set my dictionaries up or reference them... | | import glob, traceback | | years = ["2005", "2006", "2007"] | months = ["01","02","03","04","05","06","07","08","09","10","11","12"] | # Create months dictionary to convert log values | logMonths = | {"Jan":"01","Feb":"02","Mar":"03","Apr":"04","May":"05","Jun":"06","Jul":"07","Aug":"08","Sep":"09","Oct":"10","Nov":"11","Dec":"12"} | # Create monthTotals dictionary with default 0 value | monthTotals = dict.fromkeys(months, 0) | # Nest monthTotals dictionary in yearTotals dictionary | yearTotals = {} | for year in years: | yearTotals.setdefault(year, monthTotals)
try yearTotals.setdefault(year, dict.fromkeys(months, 0)) so you start with a separate subdict for each year instead of 1 for all. tjr -- http://mail.python.org/mailman/listinfo/python-list