Python:JSON
Jump to navigation
Jump to search
- import json
- Enable json functions. The json module is standard available (no installation needed)
- json.loads(<jsonstring>)
- Return <jsonstring> as dict.
- json.load(<fh>)
- Read a jsonstring from the file opened on <fh> and return it as dict.
import json
with open(filename) as fh:
data = json.load(fh)
- Read a jsonstring from an url into a dictionary.
import json
import requests
response = json.loads(requests.get(url).text)
for key in response:
print(key)
Below can be used on datatypes like lists and tuples too, not on sets.
- json.dumps(dict, indent=4)
- Convert a dict into a json string nicely formatted. Indent each level with 4 spaces.
- json.dump(dict, fh, indent=4)
- Dumps to the file opened on filehandle fh.
- json.dumps(list(set), indent='text ', separators=("",""), sort_keys=True)
- list set per line with 'text ' prepended and no separators. Seperators is a tuple (line-separator, key-value-separator), default is (",", ": ")
Not all objecttypes can be dumps by json e.g. Decimals and datetime objects. I found this on stackexchange[1]
If you want to dump the exact value return as string, else as float.
class DecimalEncoder(json.JSONEncoder):
''' To make Decimals json dumpable
json.dumps({<object to dump>, cls=DecimalEncoder)'
'''
import json
import decimal
from datetime import datetime
def default(self, o):
if isinstance(o, decimal.Decimal):
#return (str(o))
return (float(o))
elif isinstance(o, datetime):
return (str(o))
return super(DecimalEncoder, self).default(o)