【问题标题】:use Python .format(urlencode) in a for Loop在 for 循环中使用 Python .format(urlencode)
【发布时间】:2021-05-27 00:04:43
【问题描述】:

我有一个带有一些 Id 作为值列表的字典。对于这个列表,我想使用循环使用 .format 在 URL 中插入每个 ID 和键。

目标是 URL 看起来像这样:

data = urllib.request.urlopen('https://lignumdata.ch/api/v1.cfc?method=getBauteil&type=all&condition={"**KEY**":"**ITEM FROM LOOP**"}').read()

我该如何继续?

我的代码:

myDict = {'={"id":'['1838A0BD-EFED-AC5F-110BFF3266C2A08C', '1838C66B-0E3C-0073-A52F55BFEF1CDDD7', '1838D369-FE2D-54FD-993706CE152D2A1D', '18398B8C-0B6B-33A6-92BAA6FB216995F9', '18399F2E-BCA9-0457-C28BAFA5F7466181', '1839AD62-B125-1D7C-E4FD205840A3B7B4', '183A43AD-9D1C-8121-D3FA5FB69C2BE2CF', '183A53B2-CBB5-13B3-29B77034EABCE1C8', '183A61F0-CD79-878B-EA9943B8C9EA12D0', '183A692D-ED62-DA89-057A2630F061B29F', '183AC5C6-BF39-0359-12C6FBB14392EAFC', '183AD460-9F06-3841-E660630702C40991']}

结果应该是这样的:

data = urllib.request.urlopen('https://lignumdata.ch/api/v1.cfc?method=getBauteil&type=all&condition={"id":"192E4CD9-B41B-09E3-1C2148F313A3A83B"}').read()

感谢您的帮助! :)

【问题讨论】:

  • 能否请您更清楚您的输入和输出。尝试查看 f 字符串,您可以在其中喜欢 f'text{do something here}' 或在之前准备字符串并稍后对其进行格式化
  • 添加 - 您是否有一个 URL 要添加多个登录 ID 或多个 URL 来操作?
  • 感谢您的帮助,成功了!

标签: python-3.x urlencode urlopen


【解决方案1】:

在python3中可以使用f' '语法来格式化字符串。将其与 Lambda 函数结合可以定义您的格式化模板。

还可以使用dict.keys 函数来遍历字典的键。

d = {"id": ["1", "2", "3"]}
url = lambda k,v : f'https://lignumdata.ch/api/v1.cfc?method=getBauteil&type=all&condition={{"{k}":"{v}"}}'

for k in dict.keys(d):
    for v in d[k]:
        print(url(k,v))

【讨论】:

    猜你喜欢
    • 2019-01-18
    • 2020-11-29
    • 1970-01-01
    • 2014-10-16
    • 2013-09-28
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多