21 lines
702 B
Python
21 lines
702 B
Python
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
from urllib import request
|
|
|
|
|
|
def build_json_request(url: str, payload: dict, timeout_seconds: float = 5.0) -> request.Request:
|
|
data = json.dumps(payload).encode("utf-8")
|
|
req = request.Request(url=url, data=data, method="POST")
|
|
req.add_header("Content-Type", "application/json")
|
|
req.timeout_seconds = timeout_seconds
|
|
return req
|
|
|
|
|
|
def append_json_event(path: str | Path, payload: dict) -> None:
|
|
output_path = Path(path)
|
|
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
with output_path.open("a", encoding="utf-8") as handle:
|
|
handle.write(json.dumps(payload, ensure_ascii=False) + "\n")
|