How to force Python JSON output to exclude 'L' from longs
json.dumps
does not append trailing L
.
>>> json.dumps({'status': 'default', 'ID': '7717', 'recordTimestamp': 1372651201000L, 'Latitude': 50.836689, 'Longitude': -53.879143})'{"status": "default", "Latitude": 50.836689, "Longitude": -53.879143, "ID": "7717", "recordTimestamp": 1372651201000}'>>> json.dumps(98765432109876543210L)'98765432109876543210'
See json doc:Specializing JSON object encoding:
>>> import json>>> def encode_complex(obj):... if isinstance(obj, complex):... return [obj.real, obj.imag]... raise TypeError(repr(o) + " is not JSON serializable")...>>> json.dumps(2 + 1j, default=encode_complex)'[2.0, 1.0]'>>> json.JSONEncoder(default=encode_complex).encode(2 + 1j)'[2.0, 1.0]'>>> ''.join(json.JSONEncoder(default=encode_complex).iterencode(2 + 1j))'[2.0, 1.0]'
So you can define your encode_complex method, do something with int or long type.