Tous les produits
Search
Centre de documentation

ApsaraVideo VOD:Fonctions de dictionnaire

Dernière mise à jour :Aug 27, 2026

Cette rubrique décrit la syntaxe, les paramètres et les valeurs de retour des fonctions de dictionnaire. Elle fournit également des exemples d'utilisation.

set

Utilisez la fonction set pour ajouter ou mettre à jour une paire clé-valeur dans un dictionnaire.

Élément

Description

Syntaxe

set(d, k, v)

Paramètres

  • d : le dictionnaire cible.

  • k : la clé à ajouter ou à mettre à jour. Type de données : tous types.

  • v : la valeur à associer à la clé. Type de données : tous types.

Exemples

  • Exemple 1

    outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
    say(concat('keys[1]=', get(outer_keys, 1)))
    say(concat('keys[2]=', get(outer_keys, 2)))
    
    inner_keys=[]
    set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
    set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
    
    def echo_each(k, v, u) {
        s = concat('keys[', k, ']=', v)
        say(s)
    }
    foreach(inner_keys, echo_each, [])                                                                                                                                             
  • Exemple 2

    d_inner = []
        set(d_inner, 'name', 'inner dsl')
    
        d_outer = []
        set(d_outer, 'dictA', d_inner)
    
        v = get(d_outer, 'dictA')
        if v {
            v = get(v, 'name')
            if v {
                add_rsp_header('X-DSL-NESTED-DICT', v)
            }
        }

Valeur de retour

Cette fonction renvoie toujours true. Les exemples produisent la sortie suivante :

  • Sortie de l'exemple 1 :

    keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
        keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
        keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
        keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
  • L'exemple 2 ajoute l'en-tête de réponse suivant :

    X-DSL-NESTED-DICT: inner dsl

get

Utilisez la fonction get pour récupérer la valeur associée à une clé spécifiée dans un dictionnaire.

Élément

Description

Syntaxe

get(d, k)

Paramètres

  • d : le dictionnaire cible.

  • k : la clé dont il faut récupérer la valeur. Type de données : tous types.

Exemple

outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
say(concat('keys[1]=', get(outer_keys, 1)))
say(concat('keys[2]=', get(outer_keys, 2)))

inner_keys=[]
set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')

def echo_each(k, v, u) {
    s = concat('keys[', k, ']=', v)
    say(s)
}
foreach(inner_keys, echo_each, [])                                                                                                                                             

Valeur de retour

Si la clé existe, la fonction renvoie sa valeur correspondante. Sinon, elle renvoie false. L'exemple produit la sortie suivante :

keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
    keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
    keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
    keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****

foreach

La fonction foreach se comporte comme suit :

  • Elle parcourt chaque paire clé-valeur du dictionnaire d et exécute la fonction de rappel f.

  • La fonction de rappel f doit respecter la signature f(key, value, user_data).

  • La boucle foreach() s'arrête si la fonction de rappel f() renvoie false.

Élément

Description

Syntaxe

foreach(d, f, user_data)

Paramètres

  • d : le dictionnaire cible.

  • f : la fonction de rappel à exécuter pour chaque paire clé-valeur.

  • user_data : données utilisateur personnalisées à transmettre à la fonction de rappel. Ce paramètre doit être un dictionnaire.

Exemples

  • Exemple 1

    outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
    say(concat('keys[1]=', get(outer_keys, 1)))
    say(concat('keys[2]=', get(outer_keys, 2)))
    
    inner_keys=[]
    set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
    set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
    
    def echo_each(k, v, u) {
        s = concat('keys[', k, ']=', v)
        say(s)
    }
    foreach(inner_keys, echo_each, [])                                                                                                                                             
  • Exemple 2

    Cet exemple affiche les deux premiers segments M3U8 et montre comment interrompre la boucle foreach.

    def echo_each(k, v, u) {
            say(v)
    
            if match_re(v, '.*ts') {
                ts_cnt = get(u, 'ts_cnt')
                ts_cnt = add(ts_cnt, 1)
                set(u, 'ts_cnt', ts_cnt)
    
                if ge(ts_cnt, 2) {
                    return false
                }
            }
        }
    
        m3u8 = ''
        m3u8 = concat(m3u8, '#EXTM3U8', '\n')
        m3u8 = concat(m3u8, '#EXT-X-MEDIA-SEQUENCE:14065****\n')
        m3u8 = concat(m3u8, '#EXT-X-TARGETDURATION:10\n')
        m3u8 = concat(m3u8, '#EXTINF:8,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
        m3u8 = concat(m3u8, '#EXTINF:9,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
        m3u8 = concat(m3u8, '#EXTINF:10,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
    
        lines = split(m3u8, '\n')
        u = []
        set(u, 'ts_cnt', 0)
        foreach(lines, echo_each, u)

Valeur de retour

Cette fonction renvoie toujours true. Les exemples produisent la sortie suivante :

  • Sortie de l'exemple 1 :

    keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
        keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
        keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
        keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
  • Sortie de l'exemple 2 :

    #EXTM3U8
        #EXT-X-MEDIA-SEQUENCE:140651513
        #EXT-X-TARGETDURATION:10
        #EXTINF:8,
        http://***.cn/cache/289_/seg0/index140651514_1406****.ts
        #EXTINF:9,
        http://***.cn/cache/289_/seg0/index140651514_1406****.ts

del

Supprimez des paires clé-valeur d'un dictionnaire (d). Le tableau suivant détaille cette fonction.

Élément

Description

Syntaxe

del(d, k)

Paramètres

  • d : le nom du dictionnaire.

  • k : la clé. Type de données : tous types.

Exemples

var_a = []
set(var_a, 'note_a', 'note a info')
if get(var_a, 'note_a') {
    add_rsp_header('X-RESPOND-OUTPUT', 'found var_a key', true)
} else {
    add_rsp_header('X-RESPOND-OUTPUT', 'del var_a key', true)
}
del(var_a, 'note_a')
if get(var_a, 'note_a') {
    add_rsp_header('X-RESPOND-OUTPUT', 'found var_a key', true)
} else {
    add_rsp_header('X-RESPOND-OUTPUT', 'del var_a key', true)
}

Paramètres de réponse

Renvoie la valeur true. Paramètre de réponse pour cet exemple :

X-RESPOND-OUTPUT: found var_a key
X-RESPOND-OUTPUT: del var_a key