循环python时动态字符串格式

2024-04-26 14:00:09 发布

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

我一直在寻找一种在Python中动态格式化字符串(url)的优雅方式,同时循环。。。这是为了当我想为每个请求使用不同的查询参数时。在

例如,这是我目前所使用的方法(假设我有3个URL):

for i in range(3):
    for num in range(0, 496, 5):
        if i == 1:
            requests.get('https://my-website.com?pricefrom={}&priceto={}'.format(num, num + 5))

        if i == 2:
            requests.get('https://my-website.com?qtyfrom={}&qtyto={}'.format(num, num + 5))

        # ......... :(

这太难看了,我不想想象在我有更多的链接需要请求的情况下我会怎么做。在

难道没有更简单/更优雅的解决方案吗?例如:

^{2}$

任何帮助都将不胜感激


Tags: 字符串inhttpscomformaturlforget
2条回答

感谢@luminousmen和其他人的帮助。。。我找到了解决办法。显然,您只需添加占位符,而不必对其执行任何操作:'D:

urls = ['https://example.com?from={}&to={}', 
        'https://example1.com?from={}&to={}',
        'https://example2.com?from={}&to={}']

for url in urls:
    for num in range(0, 496, 5):
        requests.get(url.format(num, num + 5))

您可以按照您所说的在列表中存储具有格式的字符串:

import requests

urls = ['https://example.com?from={fr}&to={to}',
        'https://example1.com?from={fr}&to={to}',
        'https://example2.com?from={fr}&to={to}'
]
for url in urls:
    for num in range(0, 496, 5):
        requests.get(url.format(fr=num, to=num + 5))

同样在python3.6中,您可以使用f-strings

相关问题 更多 >