En el editor de scripts de JMP en Python, ¿cuál es el código, después de "import jmp", que apunta a la tabla JMP abierta que quiero leer y escribir con código? Pensé que sería simple y nativo de JMP en Python. Me aparece el mensaje "no open table" (no hay tabla abierta).
El paquete importar jmp es la capa de interfaz entre los scripts de Python y los componentes internos de JMP. Un paquete completo de Python Se ha añadido la categoría al Índice de Scripting. Esta sección proporciona documentación y ejemplos para interactuar con JMP desde Python. La integración con Python es un trabajo continuo. JMP 18 se centra principalmente en el conjunto mínimo necesario de capacidades: instalación de paquetes, interacción con tablas de datos y transferencia de datos entre JMP y Python. JMP 19 amplía esta funcionalidad con compatibilidad adicional con columnas de tablas de datos, mejor interacción con marcos de datos, compatibilidad adicional con tipos de datos JMP -> Python, Python -> JMP, y otras nuevas capacidades.
Gracias a quienes respondieron para ayudar. Logré abrir la tabla que quería. Para quienes puedan usar lo que desarrollé para abrir la tabla jmp y luego exportar las entradas de las columnas a un sitio web externo para extraer datos de las páginas relacionadas con cada entrada, aquí tienen una versión general del código Python que elaboré. Sigo trabajando para que la salida se cargue directamente en la tabla jmp en lugar de extraerla del registro, aunque dicha extracción del registro permite la edición.
importar jmp
desde selenio importar webdriver
de selenium.webdriver.common.by importar Por
desde selenium.webdriver.chrome.options importar Opciones
desde selenium.webdriver.support.ui importar WebDriverWait
desde selenium.webdriver.support importar las condiciones esperadas como EC
de selenium.common.exceptions importar TimeoutException
# Configurar Selenium WebDriver
opciones = Opciones()
options.headless = False # Ejecuta Safari en modo visible para depuración
# Inicializar el WebDriver (Safari)
controlador = webdriver.Safari()
# Ruta al archivo JMP (ajustada a la ruta que usted proporcionó)
ruta_de_archivo = "/SU RUTA JMP.jmp"
#Abrir la tabla específica por ruta de archivo
dt = jmp.open(file_path) # Abre la tabla directamente desde el archivo
# Acceda a la columna 'YOUR_COLUMN' desde la tabla abierta
TU COLUMNA_columna = dt["TU COLUMNA"] # Sintaxis correcta para acceder a una columna
# Inicializar una lista para almacenar los resultados (SUS NUEVAS COLUMNAS )
resultados = []
# Función para extraer TUS DATOS:
url = f' https://www.SU PÁGINA WEB PARA EXTRAER DE'
intentar:
#Abrir la URL
controlador.get(url)
# Establezca un tiempo de espera corto (por ejemplo, 5 segundos) para esperar a que se cargue la página
WebDriverWait(controlador, 5).hasta(EC.presencia_del_elemento_ubicado((Por.XPATH, "//a[contiene(@href, 'SU_CLAVE')]")))
# Ajustar XPath para obtener el enlace correcto (por ejemplo, obtener la primera coincidencia)
YOUR_tag = driver.find_element(By.XPATH, "//a[contiene(@href, 'YOUR_KEY') y no(contiene(@href, 'access'))]") # Excluir enlaces relacionados con 'access'
YOUR_KEY = YOUR_TAG.text.strip() # Extrae el texto de TU CLAVE
devuelve TU_SALIDA
excepto TimeoutException:
print(f"Error de tiempo de espera para YOUR_COLUMN {YOUR_COLUMN}: la URL no se cargó dentro del tiempo especificado.")
devuelve Ninguno, Ninguno # Si la URL no se carga, devuelve Ninguno TUS ETIQUETAS
excepto Excepción como e:
print(f"Error al extraer SUS ETIQUETAS para SU_COLUMNA {SU_COLUMNA}: {e}")
devolver Ninguno, Ninguno
# Iterar sobre cada fila
SU_SALIDA = obtener_SU_SALIDA(SU_COLUMNA)
results.append((YOUR_OUTPUT)) # Almacena el resultado como una tupla
# Imprimir los resultados
print(f"SU_COLUMNA: {SU_COLUMNA} -> SU_ETIQUETA: {SU_NUEVOS_DATOS})
# Cierre el WebDriver después de procesar todas las entradas
conductor.salir()
Tienes los resultados, hay múltiples formas de ponerlos directamente en una tabla de datos.
Para establecer un valor de celda específico en una tabla
dt['col_name'][ row# ] = value
Recuerda que en Python la indexación se basa en cero, mientras que en JSL se basa en uno. Por lo tanto, la primera fila de Python es dt['col'][0]
O bien, establezca una columna entera a la vez desde una lista
dt['col'] = results
Con lo anterior, la longitud de los resultados debe coincidir con el número de filas de las tablas de datos, len(resultados) == dt.nrows
Además, el tipo de datos de dt debe coincidir con el de los elementos de la lista, que deben ser todos del mismo tipo.
Se pueden crear nuevas tablas de datos desde Python, así como nuevas columnas y filas.