Python-Skriptdepot - Abrufen eines KeyError bei der Eingabe von SchlüsselwertenIch habe ein Python-Score-Skript erhalten, das vom JMP-Depot generiert wurde.
Wenn ich ein Diktat von Werten (aus einer JSON-Datei) an die Score-Formel sende, endet KeyError (als ob der Schlüssel nicht existiert, aber es ist) Könnte das ein Backspace-Problem sein?
Ich habe die JMP-Datei und die JSON-Datei angehängt
Vielen Dank
Eran
DatentabelleAndereSkriptingBetreff: Python-Skriptdepot - Abrufen eines KeyError bei der Eingabe von SchlüsselwertenHallo @ eranraz100 ,
Schön, dass Sie unsere Modelle für die Produktion einsetzen!
Der KeyError handelt von einer Zeichenfolge, die als Schlüssel im Eingabewörterbuch verwendet wird und die wiederum aus den JMP-Spaltennamen generiert wird, die als Eingabe in Ihrem Modell verwendet werden. JMP unterstützt Leerzeichen in Spaltennamen, und die als Schlüssel im generierten Python-Code verwendeten Zeichenfolgen enthalten auch eingebettete Leerzeichen:
def getInputMetadata():
return {
# ...
u"SURFACE FINISH CS": "str",
}
Es sieht so aus, als würde der Prozess, der die JSON-Eingabedaten generiert, diese Leerzeichen durch Unterstriche ersetzen:
{
"SURFACE_FINISH_CS":"FULL_HGLD",
}
Ich hoffe, dass dies auf der Seite der JSON-Generierung leicht zu beheben ist. Wenn dies nicht der Fall ist, reicht es aus, die Spaltennamen zu ändern, um die Leerzeichen durch Unterstriche zu ersetzen und das Modell neu zu generieren.
Betreff: Python-Skriptdepot - Abrufen eines KeyError bei der Eingabe von SchlüsselwertenHallo, danke für die schnelle Antwort
Wie Sie bereits erwähnt haben, habe ich eine Funktion verwendet, um den generierten JSON zu ändern - und es hat funktioniert.
Sie können das Problem als gelöst markieren
Danke noch einmal
Eran
Betreff: Python-Skriptdepot - Abrufen eines KeyError bei der Eingabe von SchlüsselwertenHallo nochmal @ eranraz100 ,
Willkommen in der JMP-Community. Sieht so aus, als wären Sie gerade beigetreten.
Ich bin gespannt auf Ihre Verwendung unseres Python-Scoring-Codes. Sie sind der erste Kunde, der nach der Verwendung von JSON als Eingabe gefragt hat.
Ich habe immer gedacht, dass dies ein erstklassiges Nutzungsszenario ist, da es unseren Modellen erleichtert, Daten aus webbasierten Prozessen zu verwenden.
Zum Beispiel ist dies ein Internetanwendung Erstellt für eine JMP Discovery 2017-Konferenz Lernprogramm .
Das Frontend ist eine statische App, die auf Leaflet basiert, und das Backend ist eines unserer Modelle, die nach Python exportiert wurden und auf AWS Lambda ausgeführt werden.
Tun Sie etwas in diese Richtung?