Python在for循环中创建嵌套的dict

2024-10-02 20:40:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个嵌套字典,但在for循环中有一个问题,至少我是这么想的。 我根据传递的参数执行多个请求,但当我尝试向在添加最后一个传递的参数之前创建的嵌套dict添加值时。 我将显示代码和输出

def api_metrics():
    my_list = []
    my_dict_1 = {}
    number = len(my_metrics)
    metricz = range(number)
    for indice in metricz:
        my_dict_1[indice] = {}
    for metric in my_metrics:
        urlnotoken = ""
        urlnotoken = urlnotoken.replace(" ","%20")
        preurl = urlnotoken + "&dateToken="+expirationDate
        msg = preurl + apikey
        token = calcMd5(msg)
        finalurl = "http://"+host+preurl+"&token="+token
        data_get = requests.get(finalurl, headers=app_headers)
        json_data = json.loads(data_get.text)
        metrics_path = json_data['data'][0]['metrics'][0]
        metric_name = metrics_path['label']
        metric_value = metrics_path['values'][0]['data'][0][1]
        metric_unit = metrics_path['magnitudes']['y']
        my_list.append(metric_name)
        my_list.append(metric_value)
        my_list.append(metric_unit)
        number = len(my_metrics)
        metricz = range(number)
        my_values = metric
        for entry in my_dict_1.keys():
          my_dict_1[entry] = metric
    return(my_dict_1)

以及输出

{0: 'avgRenditionSwitchTime', 1: 'avgRenditionSwitchTime', 2: 'avgRenditionSwitchTime', 3: 'avgRenditionSwitchTime', 4: 'avgRenditionSwitchTime'}"

这将输出传递的不同参数。我已经把代码移到了循环的内部和外部,我读了很多帖子,但是我需要更多的帮助

干杯


Tags: pathinnumberfordata参数mymetric
1条回答
网友
1楼 · 发布于 2024-10-02 20:40:32

在这里:

for entry in my_dict_1.keys():
    my_dict_1[entry] = metric

您正在将metric的值分配给所有dictmy_dict_1)项。“它只是添加最后通过的参数”的原因

在不清理代码的情况下,以下是修复问题的修补程序:

for i, metric in enumerate(my_metrics):
    ...
    my_dict_1[i] = metric

相关问题 更多 >