python-3.x - 在 for 循环中使用 Python .format(urlencode)
问题描述
我有一个带有一些 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()
谢谢你的帮助!:)
解决方案
在 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))
推荐阅读
- vue.js - 加入频道的 Agora.io 客户端在 vuejs 中无法正常工作
- postgresql - SSH 进入 AWS Elastic Beanstalk 实例时如何找到数据库密码
- c++ - 使用 student_t_distribution 计算 at - 统计量的 p 值
- mediawiki - 缺少来自 Wikipedia API 的重定向
- json - 在 JSON 响应中省略结构字段
- primefaces - 在删除 ap:dataTable 条目之前显示确认对话框
- bash - 批量更改访问和修改日期,日期来自另一个文件的内容?
- typescript - Angular / Firestore - 等待 firestore 文档查询
- git - Git:列出所有既是修订版A的孩子又是修订版B的父母的提交
- python - 如何定义嵌套矩阵?