2017-07-26 2 views
1

J'ai une colonne CSV avec un contenu comme celui-ci (juste un exemple):Parsing mutiple valeurs avec Google Affiner

[{"qual"=>"05-Admmin "name"=>"CLARK C COHO"}, {"qual"=>"20-Soc Con", "name"=>"ALPHA S A"}, {"qual"=>"20-Soc Con", "name"=>"JACK SA"} 

je voudrais extraire automatiquement les valeurs du champ « Nom » et séparer par des virgules , résultant en quelque chose comme ceci: CLARCK C COHO, SA ALPHA, JACK SA et ainsi de suite.

Je sais que je peux obtenir une valeur spécifique avec ce code:

value.parseJson()[0].name 

J'ai lu la documentation, mais je ne suis pas à comprendre comment boucler ce entre tous les champs.

Des conseils?

EDIT: Voici un autre exemple de la colonne. Le contenu ressemble à ceci:

[{"qual"=>"49-SocAdm", "name"=>"ALVARO R L"}, {"qual"=>"49-SocAdm", "name"=>"GABRIEL G L"}] 
+1

Vous devez utiliser un 'foreach()' en boucle JSON, puis une jointure pour obtenir une chaîne séparées par des virgules: 'foreach (value.parseJson(), e, e.name) .join (',') 'Je ne peux pas essayer sur votre exemple, n'est pas un Json valide. –

+0

@EttoreRizza Je pense qu'il vaut la peine d'afficher ceci comme une réponse plutôt que comme un commentaire, donc il peut être accepté –

+0

@Owen: Je ne suis pas absolument sûr que ce soit la bonne réponse. Le json posté à titre d'exemple est bizarre. Je ne suis même pas sûr que ce soit un Json. –

Répondre

0

Les données de votre fichier CSV ne sont pas au format JSON. Je ne sais pas de quoi il s'agit. Une sorte de format clé-valeur, mais je ne sais pas lequel. De plus, il lui manque parfois une virgule ou un crochet. Nous pourrions essayer de le transformer en JSOn valide, mais il sera plus facile d'extraire des informations en utilisant des expressions régulières. Voici un exemple avec Python/Jython.

import re 

pattern = re.compile(r'"name"=>"(.+?)"', re.M) 

return ", ".join(pattern.findall(value)) 

screenshot

+1

Parfait! Merci beaucoup, Ettore! – abaporu