Exploration de données avec Dasel v3
<when_to_use>
Activez cette compétence lorsque :
- Vous explorez des fichiers de données structurées inconnus (configurations, réponses d'API, jeux de données)
- Vous découvrez le schéma ou la forme d'un document avant de le modifier
- Vous investigatez des structures de configuration imbriquées (manifestes Kubernetes, pipelines CI, fichiers de paquets)
- Vous échantillonnez de grands tableaux ou des objets profondément imbriqués pour comprendre leur contenu
- Vous identifiez les types de données avant transformation ou extraction
</when_to_use>
Formats pris en charge
Dasel détecte automatiquement le format à partir de l'extension du fichier. Remplacez-le avec -i <format> lors de la lecture depuis stdin ou lorsque l'extension est ambiguë.
Identifiants de format : json, yaml, toml, xml, csv, hcl, ini
Flux de travail universel d'exploration
Suivez cette séquence lorsque vous rencontrez un fichier de données structurées inconnu. Chaque étape réduit le champ.
Étape 1 — Détection du format
Dasel déduit le format de l'extension du fichier. Pour stdin ou les extensions non standard, spécifiez explicitement :
cat mystery_file | dasel -i json 'keys($this)'
Étape 2 — Clés de premier niveau
cat config.yaml | dasel -i yaml 'keys($this)'
Résultat : tableau des noms de clés de premier niveau. Ceci est toujours la première commande d'exploration.
Étape 3 — Aperçu de la structure
Pour les petits fichiers (configurations, manifestes), videz le document complet :
cat config.yaml | dasel -i yaml
Pour les gros fichiers, passez à l'étape 4.
Étape 4 — Découverte des clés imbriquées
Naviguez niveau par niveau :
cat config.yaml | dasel -i yaml 'server'
cat config.yaml | dasel -i yaml 'keys(server)'
cat config.yaml | dasel -i yaml 'keys(server.logging)'
Découverte récursive des clés à toutes les profondeurs :
cat config.yaml | dasel -i yaml '..keys($this)'
Étape 5 — Échantillonnage de tableaux
Aperçu des premiers éléments sans charger tout le tableau :
cat data.json | dasel -i json 'items[0:3]'
Inspection d'un seul élément :
cat data.json | dasel -i json 'items[0]'
Étape 6 — Inspection de type
Déterminez le type de n'importe quel nœud :
cat data.json | dasel -i json 'typeOf(settings)'
cat data.json | dasel -i json 'typeOf(items[0].count)'
Valeurs retournées : "string", "array", "bool", "null", "int", "float"
Étape 7 — Extraction de valeurs
Une fois le chemin connu, extrayez des valeurs spécifiques :
cat config.yaml | dasel -i yaml 'database.connection.host'
cat data.json | dasel -i json 'users[0].email'
Motifs d'exploration
Exploration en largeur d'abord
Commencez à la racine, énumérez les clés à chaque niveau avant d'aller plus loin :
cat file.json | dasel -i json 'keys($this)' # Niveau 0
cat file.json | dasel -i json 'keys(metadata)' # Niveau 1
cat file.json | dasel -i json 'keys(metadata.labels)' # Niveau 2
Exploration basée sur la recherche (gros fichiers)
Lorsque le fichier est trop volumineux pour une traversée manuelle, utilisez search() avec des prédicats :
# Trouver tous les objets contenant une clé spécifique
cat data.json | dasel -i json 'search(has("email"))'
# Trouver tous les objets ayant les clés "id" et "name"
cat data.json | dasel -i json 'search(has("id") && has("name"))'
# Trouver les nœuds où une valeur correspond
cat data.json | dasel -i json 'search($this == 42)'
Compter les éléments
cat data.json | dasel -i json 'len(items)'
cat data.json | dasel -i json 'len(keys($this))'
Découverte de valeurs uniques
Extrayez un champ de tous les éléments du tableau, puis dédupliquez dans le shell :
cat data.json | dasel -i json 'items.map(category)' | dasel -i json '$this...' | sort -u
Descente récursive
Trouvez toutes les valeurs pour un nom de clé à n'importe quelle profondeur :
cat data.json | dasel -i json '..name'
Obtenez le premier élément de chaque tableau imbriqué :
cat data.json | dasel -i json '..[0]'
Recettes spécifiques aux formats
Pour des commandes d'exploration détaillées par format, voir Recettes spécifiques aux formats.
Références
- Documentation Dasel v3 (récupérée le 2026-02-19)
- Index des fonctions Dasel (récupérée le 2026-02-19)
- Dépôt GitHub Dasel (récupérée le 2026-02-19)