Source code for dffml.port.json

# SPDX-License-Identifier: MIT
# Copyright (c) 2019 Intel Corporation
"""
Ports records in JSON format
"""
import json

from .port import Port
from ..record import Record
from ..source.source import BaseSourceContext


[docs]class JSON(Port): """ Imports and exports records in JSON format """
[docs] async def export_fd(self, sctx: BaseSourceContext, fd): json.dump( {record.key: record.dict() async for record in sctx.record()}, fd )
[docs] async def import_fd(self, sctx: BaseSourceContext, fd): for key, data in json.load(fd): await sctx.update(Record(key, data=data))