组合两个for循环以更改Python中的键值

2024-10-02 12:24:11 发布

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

我有一个用Python转换的json。我想根据另一个键值更改键值

json的简单用法:

[{"id"= 1,
  "results":[{
    "image_url": "www.urlone.com",
    "urlcloud": "www.example.com/"
    },
    {
    "image_url": "www.urltwo.com,
    "urlcloud": "www.example.com"
    }],
  "images": [{
    "url": "www.urlone.com",
    "path": "123456.jpg"},
    {"url": "www.urlone.com",
     "path": "7891011.jpg"}]
 } ... ]

如果图片的url是相同的,如何将路径添加到url\u cloud

import json

with open('./input/test3.json', encoding='utf-8') as data_file:
    data = json.loads(data_file.read())

for i in data:
    results = i['results']
    images = i['images']

    for img in images:
        imgpath = img['path']
        imgurl = img['url']
        print(imgpath)

    for result in results:
        imgcloud = result['urlcloud']
        imageurl = result['image_url']
        if imgurl == imageurl:
            imgcloud = imgcloud + imgpath
            print(imgcloud)

[{“id”=1的预期输出

"results":[{
    "image_url": "www.urlone.com",
    "urlcloud": "www.example.com/123456"
    },
    {
    "image_url": "www.urltwo.com,
    "urlcloud": "www.example.com/7891011"
    }],
  "images": [{
    "url": "www.urlone.com",
    "path": "123456.jpg"},
    {"url": "www.urlone.com",
     "path": "7891011.jpg"}]
 } ... ]

Tags: pathimagecomjsonurlfordataexample
1条回答
网友
1楼 · 发布于 2024-10-02 12:24:11

迭代:

data = [{"id": 1,
         "results": [{"image_url": "www.urlone.com", "urlcloud": "www.example.com/"},
                     {"image_url": "www.urltwo.com", "urlcloud": "www.example.com"}],
         "images": [{"image_url": "www.urlone.com", "path": "123456.jpg"},
                    {"image_url": "www.urlone.com", "path": "7891011.jpg"}]
         }]

urlclouds = []
for d in data:
    for res in d['results']:
        for img in d['images']:
            if res['image_url'] == img['image_url']:
                urlclouds.append(res['urlcloud'] + img['path'])

print(urlclouds)

输出:

['www.example.com/123456.jpg', 'www.example.com/7891011.jpg']

相关问题 更多 >

    热门问题