Reputation: 153
I have an issue where I need to use simplejson
to write some dictionaries to file using python 2.4 (yes, we're actively trying to upgrade; no, it's not ready yet).
Python 2.4 cannot use the syntax:
with open('data.txt', 'w') as outfile:
json.dumps(data, outfile)
and I cannot find the correct syntax anywhere. If I try using this:
sov_filename = 'myfile.txt'
sov_file = open( sov_filename, 'w' )
filecontents = json.dumps( sov_file )
nothing happens. The file is created, but nothing is in it.
So, does anybody know how to do this for python 2.4?
Upvotes: 0
Views: 538
Reputation: 153
I simply needed to close()
it. I had it in the code, but was exiting before it executed. I was accustomed to this not being necessary because I was using the csv writer in a python 2.7 script, for which the lines appear in the file without explicitly closing.
Upvotes: 0
Reputation: 1784
The with
syntax is syntactic sugar. The desugared equivalent is:
outfile = open('data.txt', 'w')
try:
json.dump(data, outfile)
finally:
outfile.close()
I'm not sure why simplejson isn't writing to the file, but you can work around that as well, by replacing json.dump(data, outfile)
with outfile.write(json.dumps(data))
Upvotes: 0
Reputation: 3027
To save JSON to file use json.dump
:
sov_filename = 'myfile.txt'
sov_file = open(sov_filename, 'w')
json.dump(data, sov_file)
Upvotes: 1