Как записать JSON в папку (в контексте Airflow DAG)

Записывайте JSON внутри выполняемой задачи, а не при разборе DAG-файла. Создайте каталог и используйте json.dump с явной кодировкой.

Короткий ответ

Что ответить на собеседовании

Записывайте 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 не нужна.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее