Dans l'éditeur de scripts Python JMP, quel est le code, après « import jmp », qui pointe vers la table JMP ouverte que je souhaite consulter et modifier ? Je pensais que ce serait simple et natif pour JMP Python. J'obtiens « no open table »
Le package d'importation JMP constitue la couche d'interface entre les scripts Python et les composants internes de JMP. Un package Python complet Une catégorie a été ajoutée à l'index des scripts. Cette section fournit de la documentation et des exemples pour interagir avec JMP depuis Python. L'intégration de Python est en cours de développement. JMP 18 se concentre principalement sur les fonctionnalités minimales nécessaires : installation de packages, interaction avec les tables de données, transfert de données entre JMP et Python. JMP 19 étend ces fonctionnalités avec la prise en charge de colonnes de tables de données supplémentaires, une meilleure interaction avec les trames de données, la prise en charge de types de données JMP -> Python et Python -> JMP, et d'autres nouvelles fonctionnalités.
Merci à ceux qui ont répondu à mon aide. J'ai réussi à ouvrir la table souhaitée. Pour ceux qui pourraient utiliser ce que j'ai créé pour ouvrir la table JMP, puis exporter les entrées de colonne vers un site web tiers afin d'extraire les données des pages associées à chaque entrée de colonne, voici une version générale du code Python que j'ai élaboré. Je travaille encore à ce que la sortie soit chargée directement dans la table JMP plutôt que de l'extraire du journal, bien que cette extraction de journal permette des modifications.
importer jmp
depuis le pilote Web d'importation de sélénium
depuis selenium.webdriver.common.by importer Par
depuis selenium.webdriver.chrome.options importer des options
depuis selenium.webdriver.support.ui importer WebDriverWait
depuis selenium.webdriver.support importer expected_conditions en tant qu'EC
depuis selenium.common.exceptions importer TimeoutException
# Configurer Selenium WebDriver
options = Options()
options.headless = False # Exécute Safari en mode visible pour le débogage
# Initialiser le WebDriver (Safari)
pilote = webdriver.Safari()
# Chemin vers le fichier JMP (ajusté au chemin que vous avez fourni)
file_path = "/VOTRE CHEMIN JMP.jmp"
# Ouvrir la table spécifique par chemin de fichier
dt = jmp.open(file_path) # Ouvrir la table directement depuis le fichier
# Accédez à la colonne « YOUR_COLUMN » à partir de la table ouverte
VOTRE COLONNE_colonne = dt["VOTRE COLONNE"] # Syntaxe correcte pour accéder à une colonne
# Initialiser une liste pour stocker les résultats (VOS NOUVELLES COLONNES )
résultats = []
# Fonction pour extraire VOS DONNÉES :
url = f' https://www.VOTRE PAGE WEB À EXTRAIRE'
essayer:
# Ouvrir l'URL
pilote.get(url)
# Définissez un délai d'attente court (par exemple, 5 secondes) pour attendre le chargement de la page
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//a[contains(@href, 'YOUR_KEY')]")))
# Ajustez XPath pour récupérer le lien correct (par exemple, obtenir la première correspondance)
YOUR_tag = driver.find_element(By.XPATH, "//a[contains(@href, 'YOUR_KEY') and not(contains(@href, 'access'))]") # Exclure les liens associés à 'access'
VOTRE_CLÉ = VOTRE_TAG.text.strip() # Extraire le texte de VOTRE CLÉ
renvoyer VOTRE_SORTIE
sauf TimeoutException :
print(f"Erreur de délai d'attente pour VOTRE_COLONNE {VOTRE_COLONNE} : l'URL n'a pas été chargée dans le délai spécifié.")
renvoie Aucun, Aucun # Si l'URL ne se charge pas, renvoie Aucun VOS BALISES
sauf Exception comme e:
print(f"Erreur lors de l'extraction de VOS BALISES pour VOTRE_COLONNE {VOTRE_COLONNE} : {e}")
retour Aucun, Aucun
# Itérer sur chaque ligne
VOTRE_SORTIE = obtenir_VOTRE_SORTIE(VOTRE_COLONNE)
results.append((YOUR_OUTPUT)) # Stocker le résultat sous forme de tuple
# Imprimer les résultats
print(f"VOTRE_COLONNE : {VOTRE_COLONNE} -> VOTRE_TAG : {VOS_NOUVELLES_DONNÉES})
# Fermez le WebDriver après avoir traité toutes les entrées
driver.quit()
Vous avez les résultats, il existe plusieurs façons de les mettre directement dans un tableau de données.
Pour définir une valeur de cellule spécifique dans un tableau
dt['col_name'][ row# ] = value
N'oubliez pas qu'en Python, l'indexation est basée sur zéro, tandis qu'en JSL, elle est basée sur un. La première ligne en Python est donc dt['col'][0].
Ou définissez une colonne entière à la fois à partir d'une liste
dt['col'] = results
Avec ce qui précède, la longueur des résultats doit correspondre au nombre de lignes des tables de données, len(résultats) == dt.nrows
De plus, le type de données de dt doit correspondre à celui des éléments de la liste, qui doivent tous être du même type.
De nouvelles tables de données peuvent être créées à partir de Python, tout comme de nouvelles colonnes et lignes.