串联FOR循环输出

时间:2018-08-06 16:53:31

标签: python-3.x for-loop

我对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'))

有人知道怎么做吗

1 个答案:

答案 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存储在内存中可能会很繁琐。