diff --git a/src/raw_collect/twitter.py b/src/raw_collect/twitter.py index 811f413..c1661c3 100644 --- a/src/raw_collect/twitter.py +++ b/src/raw_collect/twitter.py @@ -289,7 +289,7 @@ def download_users_execute(api: API, n: float, base_dir: str, rate_limit: int, meta = {'downloaded': downloaded, 'done_set': done_set, 'current_set': current_set, 'next_set': next_set, 'n': n, 'rate_limit': rate_limit} - f.write(json.dumps(meta)) + f.write(json_stringify(meta, indent=None)) debug(f'Finished saving friends of {screen_name}') debug(f'============= Total {len(downloaded)} saved =============') diff --git a/src/raw_collect/utils.py b/src/raw_collect/utils.py index d347bb5..2579f63 100644 --- a/src/raw_collect/utils.py +++ b/src/raw_collect/utils.py @@ -3,6 +3,7 @@ import json import os from dataclasses import dataclass from datetime import datetime, date +from typing import Union import json5 @@ -101,12 +102,13 @@ class EnhancedJSONEncoder(json.JSONEncoder): return super().default(o) -def json_stringify(obj) -> str: +def json_stringify(obj, indent: Union[int, None] = 1) -> str: """ Serialize json string with support for dataclasses and datetime and sets and with custom configuration. :param obj: Objects + :param indent: Indent size or none :return: Json strings """ - return json.dumps(obj, indent=1, cls=EnhancedJSONEncoder, ensure_ascii=False) + return json.dumps(obj, indent=indent, cls=EnhancedJSONEncoder, ensure_ascii=False)