Convertir yaml a accdb

Convertidor online gratuito de YAML a ACCDB

Convierte registros YAML estructurados en una base de datos Microsoft Access ACCDB editable.

Convertir YAML a ACCDB online - gratis

Uploading…
Los archivos seleccionados superan el límite total de 75 MB. Selecciona archivos más pequeños o en menor cantidad.

Tu archivo se procesa al instante y no se almacena en nuestros servidores.

Cómo convertir un archivo yaml a accdb

101convert.com Assistant Avatar

101convert.com assistant bot
1h

Una exportación YAML a menudo necesita conversión cuando la aplicación de destino acepta bases de datos de Microsoft Access en lugar de archivos de configuración o de datos. Convertirla a ACCDB hace que los registros estén disponibles para consultas, formularios, informes, edición y distribución en forma de archivo de base de datos.

Qué es el formato YAML

YAML es un formato de serialización de texto sin formato basado en la indentación, utilizado para configuraciones, intercambio de datos estructurados, archivos de implementación y exportaciones de aplicaciones. Programas como Docker Compose, Kubernetes, Ansible, GitHub Actions y aplicaciones personalizadas de Python o JavaScript suelen crear o consumir archivos YAML.

Un documento YAML puede contener asignaciones, listas, objetos anidados, números, fechas, valores booleanos y valores nulos. No tiene un esquema de base de datos fijo, por lo que una conversión debe determinar qué asignación se convierte en una tabla, qué claves se convierten en columnas, cómo se relacionan las listas repetidas y cómo se almacenan los valores anidados.

Qué es el formato ACCDB

ACCDB es el formato de base de datos de Microsoft Access utilizado por Access 2007 y versiones posteriores. Almacena tablas, relaciones, índices, consultas, formularios, informes, macros y módulos VBA en un solo archivo de base de datos.

ACCDB es adecuado cuando los usuarios necesitan consultas relacionales, búsquedas indexadas, formularios de entrada de datos, informes o compatibilidad con Microsoft Access y Microsoft Access Database Engine. Es menos adecuado para sistemas multiusuario muy grandes, escrituras simultáneas de gran volumen o documentos YAML cuya estructura cambia con frecuencia.

Cómo convertir realmente YAML a ACCDB

Para una conversión rápida sin instalar software, puede utilizar el convertidor de YAML a ACCDB de 101convert.com. Para importaciones repetibles, control del esquema o datos anidados, utilice un script local y Access Database Engine.

Método 1: importar mediante un archivo CSV intermedio

  1. Abra el YAML e identifique la lista de registros. Una estructura como records: seguida de una lista es más fácil de importar que un documento profundamente anidado.
  2. Convierta la lista a CSV con una herramienta o un script compatible con YAML. Aplane los campos simples en columnas y serialice los objetos anidados como cadenas JSON.
  3. Abra Microsoft Access y seleccione File → New → Blank database. Guarde el nuevo archivo como output.accdb.
  4. Seleccione External Data → New Data Source → From File → Text File, elija el CSV y seleccione Import the source data into a new table.
  5. Establezca el tipo de datos de cada campo, seleccione una clave principal y revise la vista previa de importación antes de seleccionar Finish.

Método 2: crear la tabla con Python

Este ejemplo procesa una lista YAML de nivel superior compuesta por registros planos. Almacena los valores anidados como JSON y crea inicialmente todas las columnas como texto largo, lo que evita una inferencia incorrecta de tipos.

pip install pyyaml pyodbc

Cree un output.accdb en blanco en Access y, a continuación, ejecute un script similar a este en Windows con Microsoft Access Database Engine instalado:

import json
import yaml
import pyodbc

with open("input.yaml", encoding="utf-8") as f:
    data = yaml.safe_load(f)

if isinstance(data, dict) and isinstance(data.get("records"), list):
    rows = data["records"]
elif isinstance(data, list):
    rows = data
else:
    raise ValueError("Expected a top-level list or a records list")

keys = []
for row in rows:
    if not isinstance(row, dict):
        raise ValueError("Every record must be a mapping")
    for key in row:
        if key not in keys:
            keys.append(key)

def column_name(value):
    return "[" + str(value).replace("]", "]]")[:64] + "]"

connection_string = (
    r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
    r"DBQ=output.accdb;"
)
cn = pyodbc.connect(connection_string)
cur = cn.cursor()

columns = ", ".join(f"{column_name(k)} LONGTEXT" for k in keys)
cur.execute(f"CREATE TABLE [ImportedData] ({columns})")

names = ", ".join(column_name(k) for k in keys)
marks = ", ".join("?" for _ in keys)
for row in rows:
    values = []
    for key in keys:
        value = row.get(key)
        if isinstance(value, (dict, list)):
            value = json.dumps(value, ensure_ascii=False)
        elif value is not None:
            value = str(value)
        values.append(value)
    cur.execute(f"INSERT INTO [ImportedData] ({names}) VALUES ({marks})", values)

cn.commit()
cn.close()

Ejecútelo desde la carpeta que contiene input.yaml y output.accdb. Si el YAML contiene varios tipos de entidades, cree tablas de Access independientes en lugar de colocar objetos no relacionados en una sola tabla.

Calidad, compatibilidad y limitaciones

No existe una correspondencia universal uno a uno entre YAML y ACCDB. Las asignaciones YAML normalmente se convierten en filas y columnas, pero las listas anidadas requieren tablas secundarias y claves foráneas si deben consultarse individualmente. Almacenarlas como JSON conserva el contenido, pero impide el filtrado relacional normal.

El script de ejemplo no infiere tipos numéricos, de fecha, moneda ni booleanos. Después de la importación, cambie las columnas adecuadas a tipos de Access como INTEGER, DOUBLE, DATETIME o YESNO, y añada una clave principal e índices. Access tiene restricciones de nombres y tamaños de campos, incluido un límite de 64 caracteres para nombres de tablas o campos; las claves YAML largas o duplicadas deben cambiarse de nombre en un esquema de producción.

Utilice yaml.safe_load en lugar de un cargador YAML no seguro. Valide el origen antes de la importación, ya que una indentación incorrecta, claves duplicadas, anclajes, etiquetas personalizadas y conversiones implícitas de fechas pueden cambiar o invalidar los valores resultantes. El controlador ODBC de Microsoft Access está disponible principalmente en Windows, y su arquitectura de 32 o 64 bits debe coincidir con la instalación de Python que lo utilice.


Nota: Este registro de conversión de yaml a accdb está incompleto, debe verificarse y puede contener imprecisiones. Por favor, vote a continuación si esta información le resultó útil o no.

¿Fue útil esta información?

YAML vs ACCDB: comparación de formatos

Cómo se comparan los formatos YAML y ACCDB en las propiedades que más importan para esta conversión.

Comparación de los formatos de archivo YAML y ACCDB
Propiedad .YAML YAML Ain't Markup Language .ACCDB Microsoft Access Database
Estándar abierto No
Compresión Sin compresión
Tamaño de archivo típico Pequeño Medio
Se abre en un navegador web No No
Edición posterior Fácil Limitado
Compatibilidad con metadata Básico Básico
Legible como texto plano No
Más adecuado para Intercambio de datos Intercambio de datos
Introducido 2001 2007
Desarrollador Clark Evans, Ingy döt Net, Oren Ben-Kiki Microsoft
Tipo MIME application/x-yaml application/vnd.ms-access

Preguntas frecuentes

¿Es gratuito el convertidor de YAML a ACCDB?

Sí, convertir YAML a ACCDB en 101convert.com es totalmente gratuito. No se requiere registro, correo electrónico ni instalación.

¿Qué tamaño puede tener mi archivo YAML?

Puedes subir archivos YAML de hasta 300 MB y convertir hasta 20 archivos a la vez en un solo lote.

¿Qué ocurre con mis archivos subidos?

Los archivos se procesan automáticamente y se eliminan de nuestros servidores pocos minutos después de la conversión. Nunca vemos ni compartimos tus archivos.

¿Necesito instalar algún programa para convertir YAML a ACCDB?

No. La conversión de YAML a ACCDB se realiza completamente online en tu navegador y funciona en Windows, Mac, Linux, Android y iPhone.

¿Ha fallado la conversión?

En la mayoría de los casos, la causa es un formato de archivo incorrecto. Sube un archivo YAML válido para esta conversión de YAML a ACCDB. En ocasiones, el problema también puede estar de nuestro lado. Analizamos los fallos de conversión recurrentes y desactivamos o reparamos el convertidor si detectamos algún defecto.