Wie lautet der Code im JMP-Python-Skripteditor nach „import jmp“, der auf die geöffnete JMP-Tabelle verweist, die ich mit Code lesen und beschreiben möchte? Ich dachte, es wäre einfach und „nativ“ für JMP Python. Ich erhalte die Meldung „keine geöffnete Tabelle“.
Das Paket „import jmp“ ist die Schnittstelle zwischen den Python-Skripten und den JMP-Interna. Ein komplettes Python Die Kategorie „Skripting“ wurde dem Index hinzugefügt. Dieser Abschnitt enthält Dokumentation und Beispiele für die Interaktion mit JMP über Python. Die Python-Integration ist in Arbeit. JMP 18 konzentriert sich hauptsächlich auf die erforderlichen Mindestfunktionen. Paketinstallation, Datentabelleninteraktion, Datenübertragung zwischen JMP und Python. JMP 19 erweitert dies um zusätzliche Unterstützung für Datentabellenspalten, verbesserte Interaktion mit Datenrahmen, zusätzliche Unterstützung für JMP -> Python, Python -> JMP-Datentypen und weitere neue Funktionen.
Vielen Dank an alle, die mir geholfen haben. Ich habe es geschafft, die gewünschte Tabelle zu öffnen. Für alle, die meine Idee nutzen können, um die JMP-Tabelle zu öffnen und anschließend Spalteneinträge auf eine Drittanbieter-Website zu exportieren, um Daten von den zugehörigen Seiten zu extrahieren, hier eine allgemeine Version des von mir entwickelten Python-Codes. Ich arbeite noch daran, die Ausgabe direkt in die JMP-Tabelle zu laden, anstatt sie aus dem Protokoll zu extrahieren, obwohl eine solche Protokollextraktion Bearbeitungen zulässt.
jmp importieren
von Selenium Webdriver importieren
von selenium.webdriver.common.by import By
von selenium.webdriver.chrome.options importiere Optionen
von selenium.webdriver.support.ui importiere WebDriverWait
von selenium.webdriver.support importiere expected_conditions als EC
von selenium.common.exceptions importiere TimeoutException
# Selenium WebDriver einrichten
Optionen = Optionen()
options.headless = False # Führt Safari zum Debuggen im sichtbaren Modus aus
# Initialisieren Sie den WebDriver (Safari)
Treiber = Webtreiber.Safari()
# Pfad zur JMP-Datei (angepasst an den von Ihnen angegebenen Pfad)
file_path = "/IHR JMP-PFAD.jmp"
# Öffnen Sie die spezifische Tabelle über den Dateipfad
dt = jmp.open(file_path) # Öffnen Sie die Tabelle direkt aus der Datei
# Greifen Sie aus der geöffneten Tabelle auf die Spalte „YOUR_COLUMN“ zu
IHRE SPALTE_Spalte = dt["IHRE SPALTE"] # Korrekte Syntax für den Zugriff auf eine Spalte
# Initialisieren Sie eine Liste zum Speichern der Ergebnisse (IHRE NEUEN SPALTEN )
Ergebnisse = []
# Funktion zum Extrahieren IHRER DATEN:
url = f' https://www.IHRE WEBSITE, VON DER EXTRAHIERT WERDEN SOLL'
versuchen:
# Öffnen Sie die URL
Treiber.get(URL)
# Legen Sie ein kurzes Timeout (z. B. 5 Sekunden) fest, um auf das Laden der Seite zu warten
WebDriverWait(Treiber, 5).until(EC.presence_of_element_located((By.XPATH, "//a[contains(@href, 'IHR_SCHLÜSSEL')]")))
# XPath anpassen, um den richtigen Link zu erhalten (z. B. die erste Übereinstimmung abrufen)
YOUR_tag = driver.find_element(By.XPATH, "//a[contains(@href, 'YOUR_KEY') and not(contains(@href, 'access'))]") # Mit 'access' verknüpfte Links ausschließen
YOUR_KEY = YOUR_TAG.text.strip() # Extrahieren Sie den Text IHRES SCHLÜSSELS
geben Sie IHRE_AUSGABE zurück
außer TimeoutException:
print(f"Timeout-Fehler für YOUR_COLUMN {YOUR_COLUMN}: URL wurde nicht innerhalb der angegebenen Zeit geladen.")
return None, None # Wenn die URL nicht geladen wird, returniere None DEINE TAGS
außer Ausnahme als e:
print(f"Fehler beim Extrahieren IHRER TAGS für IHRE_SPALTE {IHRE_SPALTE}: {e}")
return Keine, Keine
# Iteriere über jede Zeile
IHRE_AUSGABE = hol_IHRE_AUSGABE(IHRE_SPALTE)
results.append((IHRE_AUSGABE)) # Speichern Sie das Ergebnis als Tupel
# Drucken Sie die Ergebnisse
print(f"IHRE_SPALTE: {IHRE_SPALTE} -> IHR_TAG: {IHRE_NEUE_DATEN})
# Schließen Sie den WebDriver, nachdem Sie alle Einträge verarbeitet haben
Treiber.beenden()
Sie haben die Ergebnisse. Es gibt mehrere Möglichkeiten, diese direkt in eine Datentabelle einzufügen.
So legen Sie einen bestimmten Zellenwert in einer Tabelle fest
dt['col_name'][ row# ] = value
Denken Sie daran, dass die Indizierung in Python nullbasiert ist, während sie in JSL einsbasiert ist. Die erste Zeile in Python lautet also dt['col'][0].
Oder legen Sie jeweils eine ganze Spalte aus einer Liste fest
dt['col'] = results
Bei dem oben genannten muss die Länge der Ergebnisse mit der Zeilenanzahl der Datentabelle übereinstimmen, len(results) == dt.nrows
Außerdem muss der Datentyp von dt mit dem der Elemente der Liste übereinstimmen, die alle vom gleichen Typ sein müssen.
Aus Python können neue Datentabellen sowie neue Spalten und Zeilen erstellt werden.