Записывайте JSON внутри выполняемой задачи, а не при разборе DAG-файла. Создайте каталог и используйте json.dump с явной кодировкой.
Как записать JSON в папку (в контексте Airflow DAG)
Записывайте JSON внутри выполняемой задачи, а не при разборе DAG-файла. Создайте каталог и используйте json.dump с явной кодировкой.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Записывайте JSON внутри выполняемой задачи, а не при разборе DAG-файла. Создайте каталог и используйте json.dump с явной кодировкой.
Пример тела Python-задачи:
import json
from pathlib import Path
def write_json(data, output_path):
path = Path(output_path)
path.parent.mkdir(parents=True, exist_ok=True)
with path.open('w', encoding='utf-8') as stream:
json.dump(data, stream, ensure_ascii=False)
return str(path)
Передайте функцию в PythonOperator или оформите через TaskFlow. Путь должен быть разрешённым и уникальным для нужного запуска. Локальная папка одного worker не обязана быть видна другому: для обмена между задачами используйте общее хранилище. Запись больших данных через XCom не нужна.