如何从字典列表中检索图像 url 并显示它

How to retrieve a image url from a list of dictionaries and display it

我有一个包含产品数据的字典列表。每个产品有一张图片 url。数据看起来非常像下面。我写了下面的代码,它按预期工作,但我很确定这可以通过从 items_dicts 中检索 url 一步完成。我改为使用字典理解 return 给定特定 uniq_id 的新字典 item_dict,然后继续从 item_dict.[=17= 检索 url ]

数据:

items_dicts = [
   {
      "uniq_id":"123987",
      "sku":"123",
      "name":"ABC",
      "cat":"DEF",
      "cat_tree":"A|B|C",
      "image_urls":"http://sitecom/image1.tif"
   },
    {
      "uniq_id":"987123",
      "sku":"987",
      "name":"GHI",
      "cat":"JKL",
      "cat_tree":"Z|Y|X",
      "image_urls":"http://sitecom/img/image2.tif"
   }
]

代码:

# import modules
import urllib.request
from PIL import Image

# Return a specific product dict and assign it to item_1
item_dict = {i['uniq_id'] : i for i in items_dicts}
item_1 = item_dict.get('987123', 'None')

# Retrieve img url from item_1 dict
# And save it as item_img.png
urllib.request.urlretrieve(item_1.get('image_urls'),"img.png")

# Open item img and display it
item_img = Image.open("img.png")
item_img.show()

编辑:

要从您的字典列表中获取一个特定值,例如 uniq_id 是 123987,您可以使用以下命令:

[x['image_urls'] for x in items_dicts if x['uniq_id'] == '123987']

我不确定你的确切意图,但你可以通过使用列表理解轻松地从你的字典列表中获取所有 URL 的列表:
[x['image_urls'] for x in items_dicts]

给你:

['http://sitecom/image1.tif', 'http://sitecom/img/image2.tif']

然后您可以获取此列表并根据需要显示它。