在python中将变量名作为原始字符串输入到请求中

2024-06-16 13:54:30 发布

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

我对python有点陌生。 我试图通过python循环一个URL请求,我想在每次循环时更改一个变量

我的代码如下所示:

codes = ["MCDNDF3","MCDNDF4"]

#count = 0
for x in codes:
    response = requests.get(url_part1 + str(codes) + url_part3, headers=headers)
    print(response.content)
    print(response.status_code)
    print(response.url)

我希望在每个循环中都将url更改为url\u part1+code+url\u part3,然后是url\u part1+NEXTcode+url\u part3

遗憾的是,我的请求将变量中的字符串格式化为“%5B'MCDNDF3'%5D

它应该作为原始字符串插入到每个循环中。我不知道我是否需要url编码,因为我在请求中没有任何特殊字符。只需将代码更改为MCDNF3,并在下一个请求中更改为MCDNF4

有什么想法吗

谢谢


Tags: 字符串代码urlresponsecountcodecodesheaders
2条回答

当您可能需要x时,您正在将整个列表放入(代码)

for循环中,第一行应该是:

response = requests.get(url_part1 + x + url_part3, headers=headers)

假设url_part1url_part3是正则字符串,这将起作用x已经是一个字符串,因为codes列表(至少在您的示例中)只包含字符串%5B和{}分别是{}和{}URL编码的。出现该错误是因为您在单成员列表上调用了str()

>>> str(["This is a string"])
"['This is a string']"

如果url_part1url_part3是原始字符串,如您所示,请更新您的问题以显示它们是如何定义的。如果您不想透露您的实际目标URL,请随意使用example.com。在构建完整的URL之前,您可能应该在上调用

相关问题 更多 >