2 votes

RegEx pour récupérer un numéro de score à partir d'un JSON

J'ai besoin d'extraire le numéro de la flotte après le score.

{"reason_desc":
   {
    "score":"0.1",
    "numOfIndicatrix":"0",
    "indicatrix":[]},
    "success":true,
    "id":"1555039965661065S427A2DCF5787920"
}

Je m'attends à la sortie de 0,1 ou de tout nombre entouré de "".

1voto

Emma Points 1

Ce RegEx pourrait vous aider à obtenir 0.1 . Elle divise la ligne cible en deux groupes, où le second groupe ( $2 ) renvoie les valeurs flottantes souhaitées :

("score":")([0-9\.\,]+)

RegEx

1voto

leftjoin Points 6979

Il n'est pas nécessaire d'analyser le JSON à l'aide d'un regexp dans Hive, car il dispose de fonctions intégrées à cet effet :

with your_table as (--use your table instead of this
select '{"reason_desc":
   {
    "score":"0.1",
    "numOfIndicatrix":"0",
    "indicatrix":[]},
    "success":true,
    "id":"1555039965661065S427A2DCF5787920"
}' as json_col
)

select get_json_object(t.json_col,'$.reason_desc.score') as score
  from your_table t 

Résultat :

0.1

Voir aussi : json_tuple

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X