Skip to content
Snippets Groups Projects
Commit b950025c authored by VAN-KOTE ELSA's avatar VAN-KOTE ELSA
Browse files

Merge branch 'xslfo' into 'master'

ajout des tests pour l'extraction de données json avec l'outil jq en cli

See merge request !13
parents 362006c4 77cea88f
Branches
Tags
1 merge request!13ajout des tests pour l'extraction de données json avec l'outil jq en cli
Pipeline #178576 canceled with stage
in 6 seconds
for $docname in db:list('annotations')
return
let $doc := doc('annotations/' || $docname)
for $resource in $doc//*:resources
let $chars := string-join($resource//*:chars, '|')
let $item := string-join($doc//*:value, '|')
return $docname || ',' || $chars
\ No newline at end of file
for $docname in db:list('annotations')
return
let $doc := doc('annotations/' || $docname)
let $resources := $doc//*:resources
let $resource := $resources/*:resource
let $chars := string-join($resources//*:chars, ',')
let $item := string-join($resources//*:item, ',')
for $resources in $doc
return $docname || '|' || $chars || '|' || $item
\ No newline at end of file
# Notes sur l'utilisation de l'outil jq pour parser du json
récupérer les valeurs de l'item :
jq ".resources[] .on[] .selector .item .value" p36.json
jq '.resources[].resource, .resources[].on' p36.json
`jq '.resources[].resource[].chars, .resources[].on[].selector.item.value' p36.json` : donne à la suite les différentes valeurs de `chars` puis de `value` dans tout le document.
Pour éviter d'avoir ces résultats à la suite, j'ai créé deux scripts pour chercher séparement les annotations (`script_chars`) et le id des détours correspondants (`script_value`).
**le problème est que je devais répéter la commande en changeant à chaque fois le fichier .json, car je ne savais pas comme exécuter la commande en une seule fois pour tous les fichiers**.
Puis j'ai créé un script qui vient coller les résultat "chars" et "value" ensemble pour créer un csv (`script_csv`).
Enfin, j'ai essayé de coller tous les csv les uns après les autres avec l'outil `paste` indiqué plus bas mais j'avais un décalage à un moment donné. J'ai donc du le faire à la main...
Pour coller deux fichiers ensemble l'un après l'autre et non pas sous forme de colonnes, il faut ajouter les options 's' et 'z' :
paste -sz p46.csv p106-107.csv > xo.csv
## À faire
Demande à Régis et Arhur :
- comment executer mes scripts sur tous les fichiers en une seule commande.
- cette histoire de décalage dans le résultat du paste final.
# /bin/sh
FILE=$1
jq '.resources[].resource[].chars' $1.json > $1_chars
# /bin/sh
FILE=$1
paste -d '|' $1_chars $1_value > $1.csv
# /bin/sh
FILE=$1
jq '.resources[].on[].selector.item.value' $1.json > $1_value
File added
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment