ensure_json

ensure_json(key, *subkeys, url, name=None, force=False, download_kwargs=None, open_kwargs=None, json_load_kwargs=None)[source]

Download JSON and open with json.

Parameters:
  • key (str) – The module name

  • subkeys (str) – A sequence of additional strings to join. If none are given, returns the directory for this module.

  • url (str) – The URL to download.

  • name (Optional[str]) – Overrides the name of the file at the end of the URL, if given. Also useful for URLs that don’t have proper filenames with extensions.

  • force (bool) – Should the download be done again, even if the path already exists? Defaults to false.

  • download_kwargs (Optional[Mapping[str, Any]]) – Keyword arguments to pass through to pystow.utils.download().

  • open_kwargs (Optional[Mapping[str, Any]]) – Additional keyword arguments passed to open()

  • json_load_kwargs (Optional[Mapping[str, Any]]) – Keyword arguments to pass through to json.load().

Return type:

Any

Returns:

A JSON object (list, dict, etc.)

Example usage:

>>> import pystow
>>> url = 'https://maayanlab.cloud/CREEDS/download/single_gene_perturbations-v1.0.json'
>>> perturbations = pystow.ensure_json('bio', 'creeds', '1.0', url=url)