Aller au contenu
  • 0
promac

Extraire Textes MailChimp

Question

Bonjour

j'espere que vous allez tous bien 

j'ai besoin de votre aide pour extraire dans un champs "Liste IDs" toutes les numeros id , dans un autre champ "ListName" la liste des name qui suit (en gras) et enfin un dernier champs le total id + listname

 dans le texte suivant :

[{"id":"5bac748440","web_id":8977,"name":"listnametest","date_created":"2013-05-17 13:26:39","member_count":0,"unsubscribe_count":5,"cleaned_count":62,"email_type_option":true,"default_from_name":"nom1","default_from_email":"test@aaa.org","default_subject":"test","default_language":"en","list_rating":0,"member_count_since_send":19,"unsubscribe_count_since_send":0,"cleaned_count_since_send":1}

{"id":"1dd4736484","web_id":191625,"name":"2014","date_created":"2014-02-01 04:49:41","member_count":393,"unsubscribe_count":3,"cleaned_count":57,"email_type_option":false,"default_from_name":"nom2","default_from_email":"test@mac.com","default_subject":"[NEWS]","default_language":"en","list_rating":3.5,"member_count_since_send":0,"unsubscribe_count_since_send":3,"cleaned_count_since_send":57}

{"id":"27d18134e6","web_id":259513,"name":"2015","date_created":"2015-03-19 19:30:10","member_count":415,"unsubscribe_count":0,"cleaned_count":0,"email_type_option":false,"default_from_name":"nom6","default_from_email":"zzz@aaa.com","default_subject":"","default_language":"en","list_rating":3,"member_count_since_send":415,"unsubscribe_count_since_send":0,"cleaned_count_since_send":0}

{"id":"a205d2443c","web_id":261229,"name":"Website","date_created":"2015-04-07 02:31:16","member_count":1,"unsubscribe_count":0,"cleaned_count":0,"email_type_option":false,"default_from_name":"nom3","default_from_email":"info@aaa.com","default_subject":"","default_language":"en","list_rating":0,"member_count_since_send":1,"unsubscribe_count_since_send":0,"cleaned_count_since_send":0}

{"id":"0e8514b15a","web_id":289741,"name":"test 3 emails","date_created":"2016-01-14 16:29:29","member_count":3,"unsubscribe_count":0,"cleaned_count":0,"email_type_option":false,"default_from_name":"nom4","default_from_email":"test2@mac.com","default_subject":"","default_language":"en","list_rating":0,"member_count_since_send":3,"unsubscribe_count_since_send":0,"cleaned_count_since_send":0}

{"id":"8ade346b9d","web_id":296169,"name":"liste4","date_created":"2016-03-25 15:12:31","member_count":4,"unsubscribe_count":4,"cleaned_count":0,"email_type_option":false,"default_from_name":"nom5","default_from_email":"sss@aaa.com","default_subject":"","default_language":"en","list_rating":0,"member_count_since_send":20,"unsubscribe_count_since_send":18,"cleaned_count_since_send":0}]

 

j ai essaye  d'utiliser filtervalue mais je ne m'en sors pas à cause des guillemets

et  les extractions, ce nest pas mon fort

merci mille fois pour votre aide

Bonne journee

G

Partager ce message


Lien à poster
Partager sur d’autres sites

5 réponses à cette question

Messages recommandés

  • 0

Voila

MailChimp.fmp12

MailChimp.fmp12

MailChimp.fmp12

MailChimp.fmp12

MailChimp.fmp12

MailChimp.fmp12

MailChimp.fmp12

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Autre possibilité/méthode …  Ici pas d'extraction de texte, mais extraction de valeur selon une clé donnée.

je suppose que le format de départ de tes données est un format JSON correctement agencé …(chaque "enregistrement" est ouvert avec une accolade ouvrante, fermé avec une accolade fermante et séparé de l'enregistrement suivant par une virgule. Le tout englobé dans des crochets ou accolades ouvrants/fermants)

[{"id":"5bac748440","web_id:"…},{"id":"1dd4736484","web_id":…},{"id":…}]

 

En utilisant le plug-in ScriptMaster et la fonction:

// USAGE: JSON_SlurpValues ( jsonText ; key )import groovy.json.JsonSlurpertry{    if (key == null || key == "") throw new Exception ("Please provide a valid key.")    def json = new JsonSlurper().parseText(jsonText)    //count = json.size()    output = []    json.each{it -> output << it."$key"}    return output} catch (Exception e){    return "ERROR: $e.message"}

avec JSON_SlurpValues ( RubriqueOuVariable_JSON ; "id" ), tu obtiendras une liste

  • 5bac748440
  • 1dd4736484
  • 27d18134e6
  • a205d2443c
  • 0e8514b15a
  • 8ade346b9d

 

et avec JSON_SlurpValues ( RubriqueOuVariable_JSON ; "name" )

  • 2014
  • 2015
  • Website
  • test 3 emails
  • liste4

Pour obtenir la liste de l'id et son 'name' correspondant, tu peux utiliser :

// USAGE: JSON_SlurpValues ( jsonText ; key1 ; key2 ; separator )import groovy.json.JsonSlurpertry{    if (key1 == null || key2 == null) throw new Exception ("Please provide valid keys.")    def json = new JsonSlurper().parseText(jsonText)    //count = json.size()    output = []    json.each{it -> output << it."$key1" + separator + it."$key2"}    return output} catch (Exception e){    return "ERROR: $e.message"} 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour
D'autres pistes  :

https://github.com/dansmith65/FileMaker-JSON

http://www.soliantconsulting.com/blog/2011/12/how-to-parse-json-or-any-other-language-in-filemaker
dans ce dernier remarquer un commentaire sur l'utilisation de javascript dans un webviewer.

Et si ton Json est toujours formé ainsi et s'il est limité au maximum à quelques centaines d'instances, un mélange de substitute et évaluate ( le evaluate est limité. je l'ai poussé jusqu'à mille instances de ton exemple dans le dataviewer et ça l'a fait),
ça peut le faire :

Definir([T = Json ;R = Substitute ( T ; [ "[" ; "" ] ; [ "]" ; "" ] ;[ "{\"" ; "Let([" ] ; [ "}"  ; """ ] ; #result# )" ] ; [ ",\"" ; """ ; " ] ;  [ "\":" ; "=""" ] ; [ "¶¶" ; " & \"\¶\" & " ] ; [ """""" ; """" ]) ;V = "id" //la valeur à lister];evaluate ( Substitute ( R ; "#result#" ; V ) ))




 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bon, ben histoire de jouer aussi, j'ai ressorti une vieille fonction perso qui te permet d'extraire le texte que tu veux puisque tes balises sont toujours les memes...

Si tu veux tout sortir en liste et que tu sais à l'avance combien tu as de "lignes" à traiter, il suffit de scripter une boucle qui incrémente le premier chiffre (il indique la ligne à traiter - valeurs 1 et 2 dans les rubriques calculées de l'exemple).

Et oui, c'est à l'ancienne, mais c'est dans les vieux pots...

PS toujours aussi impressionnant Dr House

 

Extraction.fmp12

Extraction.fmp12

Extraction.fmp12

Extraction.fmp12

Extraction.fmp12

Extraction.fmp12

Extraction.fmp12

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

WOW

je vais lire tout ça

Mais avant tout un énorme merci !!

Quel bien cela fait de vous avoir , de voir ce partage de connaissance, de cette fidélité pour certains qui sont toujours là pour répondre

On se sent moins seul en tant que développeur solo

Je suis si déçu par la communauté Filemaker de NYC

J'adore ce site et cette communauté ! 

Et si vous passez par là, je me ferai un plaisir de vous voir, vous guider à NY avec de bons plans et de vous offrir un verre :-)

Merci encore

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×