如何使用 Python and/or RobotFramework 将变量动态应用于字典的值

How to dynamically apply variables to the values of a dictionary using Python and/or RobotFramework

假设我有一个字典列表:

URL_LIST = [
    {'google': 'http://www.google.com/join'},
    {'yahoo':  'http://www.yahoo.com/{0}/join'},
    {'msn':    'http://www.msn.com/{0}/join'}
]

现在,我想将此字典连同其他两个变量一起传递给 python 函数,以便这两个变量替换 'yahoo''msn'变量:

def apply_arguments (url_list, yahoo_subpage, msn_subpage):
    #Do stuff
    return url_list

所以如果yahoo_suboage = 'aaa'msn_subpage = 'bbb',我希望最后的结果是这样的:

URL_LIST = [
    {'google': 'http://www.google.com/join'},
    {'yahoo':  'http://www.yahoo.com/aaa/join'},
    {'msn':    'http://www.msn.com/bbb/join'}
]

我想使用 python 或 RobotFramework 来完成。这可能吗?

我认为你的 URL_LIST 没有必要嵌套,所以我在这个答案中使用了 list

lst = [
    'http://www.google.com/join',
    'http://www.yahoo.com/{0}/join',
    'http://www.msn.com/{0}/join',
]

dct = {
    'yahoo': 'aaa',
    'msn': 'bbb',
}

def make_changes(lst, dct):

    for i, url in enumerate(lst):
        k = url.split('.')[1]
        
        try:
            lst[i] = url.replace('{0}', dct[k])
        except:
            pass
            
    return lst
     

print(make_changes(lst, dct))

输出:

['http://www.google.com/join', 'http://www.yahoo.com/aaa/join', 'http://www.msn.com/bbb/join']