Dépôt de scripts Python - Obtention d'une KeyError lors de la saisie de valeurs de cléJ'ai un script de partition python généré par le dépôt JMP,
Quand j'envoie un dict de valeurs (tirées d'un fichier json) à la formule de score, je me retrouve avec KeyError (comme si la clé n'existe pas, mais c'est le cas) Cela pourrait-il être un problème de retour arrière?
J'ai joint le fichier JMP et le fichier json
Merci
Eran
Tableau de donnéesAutreScriptingRe: Dépôt de scripts Python - Obtention d'une KeyError lors de la saisie de valeurs de clésalut @ eranraz100 ,
Heureux de vous voir déployer nos modèles en production!
Le KeyError concerne une chaîne utilisée comme clé dans le dictionnaire d'entrée, qui à son tour est générée à partir des noms de colonne JMP utilisés comme entrée dans votre modèle. JMP prend en charge les espaces dans les noms de colonnes et les chaînes utilisées comme clés dans le code Python généré ont également des espaces incorporés:
def getInputMetadata():
return {
# ...
u"SURFACE FINISH CS": "str",
}
Il semble que le processus qui génère les données d'entrée JSON remplace ces espaces par des traits de soulignement:
{
"SURFACE_FINISH_CS":"FULL_HGLD",
}
J'espère que c'est facile à corriger du côté de la génération JSON, mais sinon, changer les noms de colonne pour remplacer les espaces par des traits de soulignement et régénérer le modèle ferait l'affaire.
Re: Dépôt de scripts Python - Obtention d'une KeyError lors de la saisie de valeurs de cléSalut, merci pour la réponse rapide
comme vous le mentionnez, j'ai utilisé une fonction pour modifier le json généré - et cela a fonctionné.
vous pouvez marquer le problème comme résolu
Merci encore
Eran
Re: Dépôt de scripts Python - Obtention d'une KeyError lors de la saisie de valeurs de cléRe-bonjour @ eranraz100 ,
Bienvenue dans la communauté JMP, on dirait que vous venez de rejoindre.
Je suis curieux de savoir si vous utilisez notre code de score Python - vous êtes le premier client à avoir demandé comment utiliser JSON comme entrée.
J'ai toujours pensé que ce serait un scénario d'utilisation privilégié car il permet à nos modèles de consommer plus facilement les données des processus Web.
Par exemple, il s'agit d'un application Web créé pour une conférence JMP Discovery 2017 Didacticiel .
Le frontend est une application statique basée sur Leaflet et le backend est l'un de nos modèles exportés vers Python et fonctionnant sur AWS Lambda.
Faites-vous quelque chose de ce genre?