Blog de Metlivi

Cómo leer una exportación JSON de Day One sin conexión y sin modificarla

Para inspeccionar una exportación de Day One, conserve el archivo ZIP descargado sin cambios, cree una copia de trabajo independiente, extráigala de forma local y abra el archivo `.json` con un editor de texto o con las herramientas estándar de JSON de Python. El ZIP es un contenedor; el JSON es texto estructurado; las carpetas de medios contienen archivos independientes. Puede verificar si la sintaxis JSON es válida y localizar posibles valores de texto, fechas o archivos adjuntos sin asumir el significado de las claves no documentadas. Que el JSON sea legible no demuestra por sí solo que todos los archivos multimedia estén presentes o que el archivo se pueda restaurar.

30 de septiembre de 20264 min de lecturaEstética cotidiana y expresión personalPor Metlivi Editorial Team
Sección 1

Primero distinga el ZIP, el JSON y los medios

Day One describe su exportación JSON como un archivo ZIP que contiene un archivo `.json` con las entradas seleccionadas; los archivos multimedia pueden incluirse en carpetas para fotos, videos, audio y archivos PDF. La guía indica que el formato JSON está pensado para volver a importar datos archivados y que puede ser leído por Day One y por aplicaciones compatibles con los archivos JSON de Day One. La [guía de exportación de Day One](https://dayoneapp.com/guides/tips-and-tutorials/exporting-entries/) no define un esquema completo campo por campo, por lo que no debe considerar que un nombre de archivo o una clave de aspecto familiar sea prueba de su significado.

Mantenga intacto el archivo ZIP original. Utilice la herramienta de compresión de su sistema operativo para extraer una copia en una carpeta local nueva. Evite subir un diario personal a un formateador en línea. Antes de abrir o mover archivos, observe si el archivo comprimido contiene un solo archivo JSON, más de uno o carpetas de medios; el contenido exacto dependerá de las opciones de exportación elegidas. Abrir un archivo `.zip` como si fuera JSON fallará porque el ZIP es un formato de archivo diferente.

Sección 2

Compruebe la sintaxis JSON localmente

Un documento JSON es texto que describe valores estructurados. El nivel superior puede ser un objeto, un array u otro valor JSON válido; los objetos JSON contienen miembros con nombre, mientras que los arrays contienen valores ordenados. Las cadenas de texto usan comillas dobles, y las comas, dos puntos y corchetes deben respetar la sintaxis JSON. La [guía de JSON de MDN](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON) explica estas estructuras y las restricciones sintácticas habituales.

Para realizar una comprobación local rápida y obtener una sangría legible, Python documenta esta sintaxis de línea de comandos:

`python3 -m json.tool < journal.json`

Use el comando con la ruta a su archivo extraído y redirija la salida a un archivo nuevo solo si desea una copia independiente formateada. El comando imprime el JSON con formato cuando el análisis se realiza correctamente; si el análisis falla, Python informa la ubicación del error. Un análisis exitoso significa que el texto es un JSON válido para el analizador. No demuestra que el archivo esté completo, que sus valores tengan el significado que usted espera o que Day One pueda importarlo. La [documentación de `json` de Python](https://docs.python.org/3/library/json.html) también documenta `json.load()` y `json.loads()` para leer un archivo o una cadena de texto.

Sección 3

Identifique la estructura real del documento

Comience en el primer carácter que no sea un espacio en blanco. Una llave `{` de apertura indica un objeto; un corchete `[` indica un array. En una copia formateada, expanda el nivel exterior e inspeccione los nombres de los miembros y los tipos de valores. Los arrays pueden contener objetos; esos objetos pueden contener arrays u objetos anidados. Las formas de objetos repetidas pueden ayudarlo a encontrar posibles registros de entradas, pero la repetición por sí sola no prueba el esquema previsto por la herramienta de exportación.

Busque en el texto una frase que sepa que aparece en una entrada y, a continuación, inspeccione las llaves y los valores que la rodean. Registre la clave exacta junto al valor en lugar de cambiarle el nombre según una suposición. Un valor que parece una fecha puede ser una fecha tentativa; una cadena de texto que se asemeja a una ruta puede ser una referencia tentativa a un archivo adjunto. Trate ambos como no confirmados hasta que la documentación de Day One o el propio contexto de la exportación confirmen su significado. Conserve la ortografía, la puntuación, las secuencias de escape y los tipos de valor originales en sus notas.

Sección 4

Interprete con cautela los escapes y las referencias a medios

Una secuencia visible como `\\n` dentro de una cadena JSON representa un salto de línea con escape; no son necesariamente dos caracteres en la entrada original. Las comillas y las barras invertidas también llevan escape. Un analizador puede mostrar “Línea uno\nLínea dos” como una cadena que contiene un salto de línea, mientras que el texto JSON codifica ese salto con `\\n`. Compare los valores en un visor o analizador sin editar el archivo de origen.

Si un valor se asemeja al nombre de un archivo multimedia o a una ruta relativa, verifique si existe un archivo correspondiente en las carpetas de medios extraídas. Registre la referencia exacta y la coincidencia como una observación, no como prueba de que la referencia se resuelva correctamente en Day One. La falta de una coincidencia podría deberse a las opciones de exportación, diferencias de nomenclatura u otros detalles no determinados únicamente por el campo. Mantenga cualquier inventario separado de la exportación original.

Sección 5

Utilice un registro de inspección, no nombres de campo supuestos

Una tabla pequeña hace explícita la incertidumbre y ayuda a que otra persona pueda repetir su revisión:

Por ejemplo, un objeto JSON genérico podría contener `{\"text\":\"A note\",\"date\":\"2024-05-06\",\"attachment\":\"photos/example.jpg\"}`. Estos son únicamente nombres y valores ilustrativos, no una afirmación sobre el esquema de Day One. Mantenga el valor original sin cambios en sus notas; evite convertir formatos de fecha, resolver rutas mediante suposiciones o eliminar miembros desconocidos.

Contenido del contenedor: Nombres de archivos y carpetas presentes tras la extracción
Estructura JSON: Tipo de nivel superior y anidamiento observado
Valor tentativo: Clave exacta, tipo de valor y un breve extracto
Posible significado: “Texto/fecha/adjunto tentativo”; marcar como no verificado
Medios relacionados: Ruta exacta y si se encontró o no un archivo coincidente
Sección 6

Tenga en cuenta lo que la inspección no puede determinar

Una sintaxis válida no prueba que la exportación incluya todas las entradas seleccionadas o los archivos de medios previstos. Ver un valor que parece un archivo adjunto no demuestra que el archivo referenciado esté presente, y encontrar un archivo con un nombre similar no confirma cómo se comportará la importación. La guía de Day One identifica a JSON como un formato de archivado y reimportación, pero una inspección de solo lectura no equivale a una prueba de restauración. Si necesita garantías sobre la portabilidad o la recuperación, consulte las instrucciones actuales de Day One y realice cualquier comprobación de importación por separado en una copia segura, preservando la exportación intacta.

Lecturas relacionadas

Sigue explorando este tema