Best way to create a Dictionary from file of Key-Value pairs?

Bob Ippolito bob at redivi.com
Sun Feb 29 21:36:42 CET 2004


On 2004-02-29 15:22:32 -0500, ir4u4 at yahoo.com (Equis Uno) said:

> Hi,
> 
> Assume I'm given a 100k file full of key-value pairs:
> 
> date,value
> 26-Feb-04,36.47
> 25-Feb-04,36.43
> 24-Feb-04,36.30
> 23-Feb-04,37.00
> 20-Feb-04,37.00
> 19-Feb-04,37.87
> 
> What is the best way to copy this data into a Dictionary object?

Getting that data into a dictionary is the easy part..  deciding how 
you want to use it is much harder.

Python 2.3 comes with a module designed specifically to read files that 
look like that, so here's a start:

# none of this code is tested
import csv
myfile = file('myfilename')
myfile.readline() # skip "date,value" line
datevaluemap = dict(csv.reader(myfile))

But your dates and values would end up as strings.. so you might want 
to do something like
datevaluemap = dict([(key, float(value)) for (key, value) in 
csv.reader(myfile)])

Which would get your values in as floats, not strings.  The dates would 
still be strings though, and you might want to use a datetime.date 
object for that.  I don't want to demonstrate how to convert those too, 
since it's longer, uglier, and I don't know strftime format codes off 
the top of my head.. but you can look into datetime.date and 
time.strptime.

-bob




More information about the Python-list mailing list