在Python中动态地将获得的结果分配给变量
我有一个API响应,用于列出所有卷的信息。我想循环响应,获取在Python中动态地将获得的结果分配给变量,python,Python,我有一个API响应,用于列出所有卷的信息。我想循环响应,获取名称的值,并将它们动态地分配给每个url 这是我的主要API端点,它返回以下内容: [{'source': None, 'serial': '23432', 'created': '2018-11- 12T04:27:14Z', 'name': 'v001', 'size': 456456}, {'source': None, 'serial': '4364576', 'created': '2018-11-12T04:27:16
名称的值,并将它们动态地分配给每个url
这是我的主要API端点,它返回以下内容:
[{'source': None, 'serial': '23432', 'created': '2018-11-
12T04:27:14Z', 'name': 'v001', 'size':
456456}, {'source': None, 'serial': '4364576',
'created': '2018-11-12T04:27:16Z', 'name': 'v002',
'size': 345435}, {'source': None, 'serial':
'6445645', 'created': '2018-11-12T04:27:17Z', 'name': 'v003', 'size':
23432}, {'source': None,
'serial': 'we43235', 'created': '2018-11-12T04:27:20Z',
'name': 'v004', 'size': 35435}]
我这样做是为了得到'name'
test_url = 'https://0.0.0.0/api/1.1/volume'
test_data = json.loads(r.get(test_url, headers=headers,
verify=False).content.decode('UTF-8'))
new_data = [{
'name': value['name']
} for value in test_data]
final_data = [val['name'] for val in new_data]
for k in final_data:
print(k)
k
打印出name
中的所有值,但我仍然无法在分配不同API端点时使用它。现在,k
返回
v001
v002
v003
v004
我想将它们中的每一个分配到不同的端点,如下所示:
url_v001 = test_url + v001
url_v002 = test_url + v002
url_v003 = test_url + v003
url_v004 = test_url + v004
我希望这是动态完成的,因为我的主API可能返回4个以上的卷名 这样做不好,但最好的方法是使用字典:
d={}
for k in final_test:
d['url_'+k] = test_url + k
或者更好地理解词典:
d={'url_'+k:test_url + k for k in final_test}
现在:
print(d)
两者都再现了:
{'url_v001': 'https://0.0.0.0/api/1.1/volumev001', 'url_v002': 'https://0.0.0.0/api/1.1/volumev002', 'url_v003': 'https://0.0.0.0/api/1.1/volumev003', 'url_v004': 'https://0.0.0.0/api/1.1/volumev004'}
要使用d
:
for k,v in d.items():
print(k+',',v)
产出:
url_v001, https://0.0.0.0/api/1.1/volumev001
url_v002, https://0.0.0.0/api/1.1/volumev002
url_v003, https://0.0.0.0/api/1.1/volumev003
url_v004, https://0.0.0.0/api/1.1/volumev004
我觉得这可以很容易地简化为一本字典。@Tomothy32编辑了我的。@U9转发,非常感谢!谢谢你的帮助。但是如果把它放在字典里,我如何分别使用每个URL呢?例如,我使用每个url并循环使用它们来获得所需的值。@Bharath编辑了我的url,也可以查看文档,乐于帮助:-)@U9转发感谢您的帮助。还有一个,当我打印(d)
时,它会打印出4个副本(就像它打印同一行的4行(字典))。