json to txt
Pipeline de Módulo Único: json-to-txt
🇺🇸 English version of this document
Este documento presenta una guía de cómo ensamblar y consumir un pipeline de módulo único que solo incluye un módulo json-to-txt. Se divide en las siguientes secciones:
Monta tu Pipeline
Primero crea un pipeline de módulo único con un módulo json-to-txt.
Usa el método create_pipeline para esto, incluyendo solamente una referencia de módulo json-to-txt en el argumento module_chain.
# crea un pipeline con un solo módulo json-to-txt
pipeline = krixik.create_pipeline(name="unico_json-to-txt_1", module_chain=["json-to-txt"])
Formato de Entrada Requerido
El módulo json-to-txt recibe entradas con formato JSON. Las entradas JSON deben respetar esta estructura.
Antes de procesar un archivo de entrada—uno válido para este pipeline—examínalo con el siguiente código:
# examina el contenido de un archivo de entrada válido
test_file = data_dir + "input/1984_fragmentos.json"
with open(test_file, "r") as file:
print(json.dumps(json.load(file), indent=2))
[
{
"snippet": "It was a bright cold day in April, and the clocks were striking thirteen.",
"line_numbers": [
1
]
},
{
"snippet": "Winston Smith, his chin nuzzled into his breast in an effort to escape the\nvile wind, slipped quickly through the glass doors of Victory Mansions,\nthough not quickly enough to prevent a swirl of gritty dust from entering\nalong with him.",
"line_numbers": [
2,
3,
4,
5
]
}
]
Usa el Modelo Predeterminado
Ahora procesa el archivo usando el modelo predeterminado del módulo json-to-txt: base. Por lo pronto, este es el único modelo en este módulo.
Dado que este es el modelo predeterminado, no hace falta que especifiques qué modelo quieres usar a través del argumento opcional modules del método process.
# procesa el archivo con el modelo predeterminado
process_output = pipeline.process(
local_file_path=data_dir + "input/1984_fragmentos.json", # la ruta de archivo inicial en la que yace el archivo de entrada
local_save_directory=data_dir + "output", # el directorio local en el que se guarda el archivo de salida
expire_time=60 * 30, # data de este proceso se eliminará del sistema Krixik en 30 minutos
wait_for_process=True, # espera que el proceso termine antes de devolver control del IDE al usuario
verbose=False, # no mostrar actualizaciones de proceso al ejecutar el código
)
La salida del proceso se reproduce con el siguiente código. Para aprender más sobre cada componente de esta salida, revisa la documentación del método process.
El archivo de salida se ha guardado en la ubicación indicada bajo process_output_files. El file_id del archivo procesado es el prefijo del nombre del archivo de salida en esta ubicación.
# nítidamente reproduce la salida de este proceso
print(json.dumps(process_output, indent=2))
{
"status_code": 200,
"pipeline": "single_json-to-txt_1",
"request_id": "1a1bec21-0b49-40fc-b548-87c354d8c478",
"file_id": "67b7c6cf-829b-4afa-99ff-3c1387b3db02",
"message": "SUCCESS - output fetched for file_id 67b7c6cf-829b-4afa-99ff-3c1387b3db02.Output saved to location(s) listed in process_output_files.",
"warnings": [],
"process_output": null,
"process_output_files": [
"../../../data//output/67b7c6cf-829b-4afa-99ff-3c1387b3db02.txt"
]
}
Para confirmar que todo salió como esperabas, carga el archivo de texto de process_output_files:
# carga la salida del proceso del archivo
import json
with open(process_output["process_output_files"][0], "r") as file:
print(file.read())
It was a bright cold day in April, and the clocks were striking thirteen.
Winston Smith, his chin nuzzled into his breast in an effort to escape the
vile wind, slipped quickly through the glass doors of Victory Mansions,
though not quickly enough to prevent a swirl of gritty dust from entering
along with him.
Puedes ver que el módulo ha concatenado los dos fragmentos texto del archivo de entrada JSON y devuelto un solo string.