Created
November 27, 2014 20:29
-
-
Save isagalaev/ab627d235082e20a0062 to your computer and use it in GitHub Desktop.
float-wrapper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import ijson | |
def parse(events): | |
for prefix, event, value in events: | |
if event == 'number': | |
value = float(value) | |
yield prefix, event, value | |
f = urllib.request.urlopen('...') | |
for obj in ijson.common.items(parse(ijson.parse(f)), '... prefix ...'): | |
handle(obj) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
So I really like ijson, except for the Decimal problem. While I appreciate the desire to maximize precision, I'm stumped by non-equivalent serializing/deserializing of floating point values.
A couple questions here:
`
import ijson
def parse(events):
for prefix, event, value in events:
if event == 'number':
value = float(value)
yield prefix, event, value
def handle_msg(obj):
print obj
file = open("testfile.txt", "w")
file.write('[ { "fval1" : 37.5 }, { "fval2" : 41.9 }, { "fval3" : 77.2 } ]')
file.close()
f = open('testfile.txt')
for obj in ijson.common.items(parse(ijson.parse(f)), '... prefix ...'):
print 'got object: %s' % obj
handle_msg(obj)
print "Done"
`