sorting items in a table problematic because of scientific notation
skip at pobox.com
skip at pobox.com
Tue Apr 28 20:04:14 EDT 2009
Amélie> Hi All,
Amélie> I have a dbf table outputted by another program that I cannot
Amélie> (I'm pretty sure) change the format of.
Amélie> I use a dbf reader code found online
Amélie> (http://code.activestate.com/recipes/362715/ ) to read the table
Amélie> in and I need to sort it on a particular field but this field
Amélie> has scientific notation in it and when I use the following
Amélie> command, it seems to ignore the scientific notation which is
Amélie> very problematic outlist = sorted(records, key=itemgetter(2)) .
You should convert numeric fields to floats or ints as appropriate. It
appears the dbf reader isn't converting the numbers in scientific notation
to floats because they contain leading spaces, e.g.:
[53, 55, ' 1.05646365517e+005']
You can make a pass through your list of lists and strip the whitespace:
>>> s = ' 1.05646365517e+005'
>>> float(s.strip())
105646.365517
--
Skip Montanaro - skip at pobox.com - http://www.smontanaro.net/
"XML sucks, dictionaries rock" - Dave Beazley
More information about the Python-list
mailing list