【问题标题】:Iterating list of list to populate json using python使用python迭代列表以填充json
【发布时间】:2021-01-04 22:18:43
【问题描述】:

我想通过使用 python 遍历列表来填充 json。

目前列表列表如下:

bookmark_apps = [['Google App','https://google.com'], ['Yahoo App','https://yahoo.com'], ['Espn App','https://espn.com']]

我想填充如下所示的 JSON:

{
  "name": **Populate App Name Here**,
  "label": **Populate App Name Here**,
  "signOnMode": "BOOKMARK",
  "settings": {
    "app": {
      "requestIntegration": false,
      "url": **Populate App URL Here**
    }
  }
}

我相信有比我正在尝试的更好的方法来解决它。我尝试解决此问题的方法是将其分解为 2 个列表并使用 zip 进行迭代,如下所示:

app_name_label = []
for sub_list in bookmark_apps:
    app_name_label.append(sub_list[0])

bookmark_url = []
for sub_list2 in bookmark_apps:
    bookmark_url.append(sub_list2[1])

for i, j in zip(name_label, needed_bookmark_url):

任何获得填充 json 解决方案的建议或方法将不胜感激。谢谢。

【问题讨论】:

  • 是否存在namelabel 键,我们必须创建它们吗?
  • @deadshot 它们不存在 - 所以需要创建它们
  • 你不需要zip。你的代码相当于for i, j in bookmark_apps

标签: python json python-3.x list itertools


【解决方案1】:

使用从嵌套列表创建字典的列表推导式。

result = [{
        "name": name,
        "label": name,
        "signOnMode": "BOOKMARK",
        "settings": {
            "app": {
                "requestIntegration": False,
                "url": url
            }
        }
    } for name, url in bookmark_apps]

DEMO

【讨论】:

  • 此解决方案通过将错误的“名称”与错误的“url”相关联来创建超额费用。例如它会为我创建这个``` { "name": "Google App", "label": "Google App", "signOnMode": "BOOKMARK", "settings": { "app": { "requestIntegration" : 假, "url": "yahoo.com" } } }
  • 刚刚检查过了。工作 - 非常感谢您的帮助。
  • 你知道如何遍历每个 json 主体的“结果”吗?这样我就可以通过 API 发出请求。似乎所有的 json 正文都在列表中串联。
  • for result in results: 然后使用result 发送请求。
猜你喜欢
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多