"TypeError: (Integer) is not JSON serializable" when serializing JSON in Python?

user1329894 picture user1329894 · Aug 13, 2012 · Viewed 119.2k times · Source

I am trying to send a simple dictionary to a json file from python, but I keep getting the "TypeError: 1425 is not JSON serializable" message.

import json
alerts = {'upper':[1425],'lower':[576],'level':[2],'datetime':['2012-08-08 15:30']}
afile = open('test.json','w')
afile.write(json.dumps(alerts,encoding='UTF-8'))
afile.close()

If I add the default argument, then it writes, but the integer values are written to the json file as strings, which is undesirable.

afile.write(json.dumps(alerts,encoding='UTF-8',default=str))

Answer

user1329894 picture user1329894 · Aug 13, 2012

I found my problem. The issue was that my integers were actually type numpy.int64.