def test_read_json_types(self): path = str(test.get_data_path("downloads.json")) # datetime.date.fromisoformat requires Python >= 3.7. date = lambda x: datetime.date(*map(int, x.split("-"))) types = {"date": date, "downloads": int} data = ListOfDicts.read_json(path, types=types) assert isinstance(data[0].date, datetime.date) assert isinstance(data[0].downloads, int) assert isinstance(data[100].date, datetime.date) assert isinstance(data[100].downloads, int)
def test_write_json(self): orig = test.list_of_dicts("downloads.json") handle, path = tempfile.mkstemp(".json") orig.write_json(path) data = ListOfDicts.read_json(path) assert data == orig
def test_read_json(self): path = str(test.get_data_path("downloads.json")) data = ListOfDicts.read_json(path) assert len(data) == 905 assert all(len(x) == 3 for x in data)
def test_read_json_keys(self): path = str(test.get_data_path("downloads.json")) data = ListOfDicts.read_json(path, keys=["date", "downloads"]) assert list(data[0].keys()) == ["date", "downloads"] assert list(data[100].keys()) == ["date", "downloads"]
def read_json(path, *, encoding="utf-8", keys=[], types={}, **kwargs): return ListOfDicts.read_json(path, encoding=encoding, keys=keys, types=types, **kwargs)