__init__.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from library.python.json.loads import loads as _loads
  2. from simplejson import loads as _sj_loads
  3. def loads(*args, **kwargs):
  4. try:
  5. return _loads(*args, **kwargs)
  6. except Exception as e:
  7. if 'invalid syntax at token' in str(e):
  8. kwargs.pop('intern_keys', None)
  9. kwargs.pop('intern_vals', None)
  10. kwargs.pop('may_unicode', None)
  11. return _sj_loads(*args, **kwargs)
  12. raise
  13. from simplejson import load, dump, dumps # noqa
  14. def read_file(file_name, **kwargs):
  15. """
  16. Read file and return its parsed json contents.
  17. All kwargs will be proxied to `json.load` method as is.
  18. :param file_name: file with json contents
  19. :return: parsed json contents
  20. """
  21. with open(file_name) as f:
  22. return load(f, **kwargs)
  23. def write_file(file_name, contents, **kwargs):
  24. """
  25. Dump json data to file.
  26. All kwargs will be proxied to `json.dump` method as is.
  27. :param file_name: file to dump to
  28. :param contents: JSON-serializable object
  29. """
  30. with open(file_name, "w") as f:
  31. dump(contents, f, **kwargs)