Depot di script Python: ottenere un KeyError durante l'immissione di valori chiaveHo uno script di punteggio Python generato dal depot di JMP,
Quando invio un dict di valori (preso da un file json) alla formula del punteggio, si finisce con KeyError (come se la chiave non esistesse, ma lo è) Potrebbe essere un problema di backspace?
Ho allegato il file JMP e il file json
Grazie
Eran
Tabella datiAltroScriptingOggetto: depot di script Python - ottenere un KeyError durante l'immissione di valori chiaveCiao @ eranraz100 ,
Sono contento di vederti mettere in produzione i nostri modelli!
KeyError riguarda una stringa utilizzata come chiave nel dizionario di input, che a sua volta viene generata dai nomi delle colonne JMP utilizzati come input nel modello. JMP supporta gli spazi nei nomi delle colonne e anche le stringhe utilizzate come chiavi nel codice Python generato hanno spazi incorporati:
def getInputMetadata():
return {
# ...
u"SURFACE FINISH CS": "str",
}
Sembra che il processo che sta generando i dati di input JSON sostituisca questi spazi con trattini bassi:
{
"SURFACE_FINISH_CS":"FULL_HGLD",
}
Spero che questo sia facile da risolvere sul lato della generazione JSON, ma in caso contrario, cambiare i nomi delle colonne per sostituire gli spazi con trattini bassi e rigenerare il modello farebbe il trucco.
Oggetto: depot di script Python - ottenere un KeyError durante l'immissione di valori chiaveCiao, grazie per la rapida risposta
come dici tu, ho usato una funzione per alterare il json generato - e ha funzionato.
puoi contrassegnare il problema come risolto
grazie ancora
Eran
Oggetto: depot di script Python - ottenere un KeyError durante l'immissione di valori chiaveCiao di nuovo @ eranraz100 ,
Benvenuto nella community di JMP, sembra che ti sia appena iscritto.
Sono curioso del tuo utilizzo del nostro codice di punteggio Python: sei il primo cliente che ha chiesto di utilizzare JSON come input.
Ho sempre pensato che questo sarebbe stato uno scenario di utilizzo privilegiato in quanto rende più facile per i nostri modelli consumare i dati dai processi basati sul web.
Ad esempio, questo è un file applicazione web creato per una conferenza JMP Discovery 2017 tutorial .
Il frontend è un'app statica basata su Leaflet e il backend è uno dei nostri modelli esportati in Python e in esecuzione su AWS Lambda.
Stai facendo qualcosa in questo senso?