【发布时间】:2020-06-14 20:42:10
【问题描述】:
我正在尝试创建一个嵌套字典,但我在 for 循环中遇到了问题,至少我是这么想的。 我根据传递的 args 做了几个请求,但是当我尝试向嵌套的 dict 添加值时,它只是添加了最后一个传递的 arg。 我将显示代码和输出。
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'}"
这应该输出传递的不同参数。我已经在循环内外移动了代码,我已经阅读了很多帖子,但我需要进一步的帮助!
干杯。
【问题讨论】:
-
您可以先从阅读列表和字典理解中受益。也请坚持缩进级别 - 这被标记为 python 而不是 java - 所以缩进很重要
-
我已经阅读了,但仍然没有成功。关于缩进,我只是看到一个不正常的地方,它在这里重新排列,所以它可能已经逃脱了,而且它确实是 python,现在你真的可以帮忙吗?现在看来很确定了。
-
你应该首先摆脱这个:对于 metricz 中的索引:my_dict_1[indice] = {} 使用枚举,使用理解;这将有助于清理您的代码
-
谢谢,去看看
-
修复您的代码缩进,因为它会引起您和其他人的混淆。也尝试改进您的问题。
标签: python loops dictionary nested