我对Python非常陌生(活跃使用的第一周)。我有一些bash脚本编写经验,但是决定学习Python。
我有多个字符串的变量,用于在FOR循环中构建URL。 URL的输出是JSON,我想将完整的输出连接到一个文件中。
出于隐私原因,我将放置随机网址。
代码如下:
=================
numbers = ['24246', '83367', '37643', '24245', '24241', '77968', '63157', '76004', '71665']
for id in numbers:
restAPI = s.get(urljoin(baseurl, '/test/' + id + '&test2'))
result = restAPI.json
=================
问题是,如果我进行打印(结果),我只会得到最后一次迭代的输出,即www.google.com/test/71665&test2
通过添加 text = [] 创建列表是可行的(内容已连接),但是我想保留原始格式。
text = []
for id in numbers:
restAPI = s.get(urljoin(baseurl, '/test/' + id + '&test2'))
有人知道怎么做吗
答案 0 :(得分:0)
for
循环结束时,在for循环内分配的变量仅保留最后一个值。即每次您的代码for
循环通过时,restAPI
变量每次都会重置。
如果您想保留每个URL,则可以每次append
到for循环范围之外的列表,即
restAPI = s.get(urljoin(baseurl, ...
url_list.append(restApi.json)
或者如果您只是想打印...
for id in numbers:
restAPI = s.get(urljoin(baseurl, ...
print(restAPI.json)
如果将它们添加到列表中,则可以使用新的URL列表执行单独的功能。
如果您认为可能有重复项,请随意使用set()
(随着添加新值,它会自动删除iterable中的重复项)。您可以使用set_name.add(restAPI.json)
更好的是,您可以实现dict
并将id
分配为键,并将json对象分配为值。因此,您可以:
dict_obj = dict()
for id in numbers:
restAPI = s.get(urljoin(baseurl, ...
dict_obj[id] = restAPI.json
这样,您可以稍后在脚本中查询字典。
请注意,如果您要查询许多URL,则根据硬件的不同,将JSON存储在内存中可能会很繁琐。