Nell'editor di script Python di JMP, qual è il codice, dopo "import jmp", che punta alla tabella JMP aperta che voglio leggere e scrivere con il codice? Pensavo fosse semplice e "nativo" di JMP Python. Invece, ottengo il messaggio "no open table".
Il pacchetto importa jmp è il livello di interfaccia tra gli script Python e gli interni JMP. Un intero Pitone La categoria è stata aggiunta all'Indice di Scripting. Questa sezione fornisce documentazione ed esempi per l'interazione con JMP da Python. L'integrazione con Python è un lavoro in corso. JMP 18 si concentra principalmente sul set minimo necessario di funzionalità. Installazione del pacchetto, interazione con le tabelle dati, trasferimento dati tra JMP e Python. JMP 19 amplia questo aspetto con un supporto aggiuntivo per le colonne delle tabelle dati, una migliore interazione con i data frame, supporto aggiuntivo per i tipi di dati JMP -> Python, Python -> JMP e altre nuove funzionalità...
Grazie a chi mi ha risposto per aiutarmi. Sono riuscito ad "aprire" la tabella che volevo. Per chi potesse usare quello che ho elaborato per aprire la tabella jmp, quindi esportare le voci delle colonne su un sito web di terze parti per estrarre i dati dalle pagine relative a ciascuna voce di colonna, ecco una versione generale del codice Python che ho elaborato. Sto ancora lavorando per far sì che l'output venga caricato direttamente nella tabella jmp anziché estrarlo dal log, sebbene tale estrazione del log consenta la modifica.
importa jmp
da selenio importa webdriver
da selenium.webdriver.common.by importa da
da selenium.webdriver.chrome.options importa Opzioni
da selenium.webdriver.support.ui importa WebDriverWait
da selenium.webdriver.support importa expected_conditions come EC
da selenium.common.exceptions importa TimeoutException
# Configura Selenium WebDriver
opzioni = Opzioni()
options.headless = False # Esegue Safari in modalità visibile per il debug
# Inizializza il WebDriver (Safari)
driver = webdriver.Safari()
# Percorso del file JMP (adattato al percorso fornito)
file_path = "/IL TUO PERCORSO JMP.jmp"
# Apri la tabella specifica tramite il percorso del file
dt = jmp.open(file_path) # Apri la tabella direttamente dal file
# Accedi alla colonna 'YOUR_COLUMN' dalla tabella aperta
LA TUA COLONNA_colonna = dt["LA TUA COLONNA"] # Sintassi corretta per accedere a una colonna
# Inizializza un elenco per memorizzare i risultati (LE TUE NUOVE COLONNE )
risultati = []
# Funzione per estrarre i TUOI DATI:
url = f' https://www.LA TUA PAGINA WEB DA CUI ESTRARRE'
Tentativo:
# Apri l'URL
driver.get(url)
# Imposta un timeout breve (ad esempio, 5 secondi) per attendere il caricamento della pagina
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//a[contains(@href, 'YOUR_KEY')]")))
# Adatta XPath per ottenere il collegamento corretto (ad esempio, ottenere la prima corrispondenza)
YOUR_tag = driver.find_element(By.XPATH, "//a[contains(@href, 'YOUR_KEY') and not(contains(@href, 'access'))]") # Escludi i link correlati a 'access'
YOUR_KEY = YOUR_TAG.text.strip() # Estrai il testo della TUA CHIAVE
restituisci IL_TUO_OUTPUT
eccetto TimeoutException:
print(f"Errore di timeout per YOUR_COLUMN {YOUR_COLUMN}: l'URL non è stato caricato entro il tempo specificato.")
restituisci None, None # Se l'URL non si carica, restituisci None I TUOI TAG
eccetto Eccezione come e:
print(f"Errore durante l'estrazione dei TUOI TAG per LA_TUA_COLONNA {LA_TUA_COLONNA}: {e}")
restituisci Nessuno, Nessuno
# Esegui l'iterazione su ogni riga
IL_TUO_OUTPUT = ottieni_IL_TUO_OUTPUT(LA_TUA_COLONNA)
results.append((YOUR_OUTPUT)) # Memorizza il risultato come una tupla
# Stampa i risultati
print(f"LA_TUA_COLONNA: {LA_TUA_COLONNA} -> LA_TUA_TAG: {I_TUOI_NUOVI_DATI})
# Chiudere WebDriver dopo aver elaborato tutte le voci
driver.quit()
Una volta ottenuti i risultati, ci sono diversi modi per inserirli direttamente in una tabella dati.
Per impostare un valore di cella specifico in una tabella
dt['col_name'][ row# ] = value
Ricorda che in Python l'indicizzazione è a partire da zero, mentre in JSL è a partire da uno. Quindi la prima riga in Python è dt['col'][0]
Oppure imposta un'intera colonna alla volta da un elenco
dt['col'] = results
Con quanto sopra la lunghezza dei risultati deve corrispondere al numero di righe delle tabelle dati, len(risultati) == dt.nrows
Inoltre, il tipo di dati di dt deve corrispondere a quello degli elementi dell'elenco, che devono essere tutti dello stesso tipo.
Da Python è possibile creare nuove tabelle di dati, così come nuove colonne e righe.