如何访问彼此嵌套的多层字典和列表,并将它们收集到列表中

时间:2019-06-08 05:29:06

标签: python json dictionary pycharm

im寻找访问此json文件中图像的网址。但是我只能走得那么远。我到了Image,它会打印出““ url”:// images ....'

{
    "devices": [
        {
            "variants": 
            [
                {
                    "iMEIPrefix": null,

                    {
                        "totalTax": 0,

                    },
                    "smartTab": {
                        "payOffPeriod": 24,
                        "requiredUpfrontPayment": 0,

                    },
                    "pricingForUi": {
                        "payOffPeriod": 24,
                        "requiredUpfrontPayment": 0,

                    },

                    "memory": "64GB",
                    "phoneImages": [
                        {
                            "url": "//images.ctfassets.net/7bx5buq4osbe/4tfPcjBNmnbWupJ7byONiZ/0f27dc736403c4027bbf13f184ffd4fc/PIXEL3A-BLACK-FRONT.png",
                            "title": "PIXEL3A-BLACK-FRONT",
                            "description": null
                        },
                        {
                            "url": "//images.ctfassets.net/7bx5buq4osbe/1UVKkXIBCUPkKJ8ROvFkOO/8f25b2c57bfd774792dfb69ed1d3cc29/PIXEL3A-BLACK-SIDE.png",
                            "title": "PIXEL3A-BLACK-SIDE",
                            "description": null
                        },
                        {
                            "url": "//images.ctfassets.net/7bx5buq4osbe/1K2AP67ZhWb9pBtIp3r1sj/755bdc263d4a6e43e8275bea2beb92d3/PIXEL3A-BLACK-BACK.png",
                            "title": "PIXEL3A-BLACK-BACK",
                            "description": null
                        }
                    ],
到目前为止,

我的代码

phoneImages = phone['variants'][0]['phoneImages']

data['image'] = phoneImages

例如,我希望获得以下输出:

"image": [                                      
    "https://xpressphone-backend.herokuapp.com/Apple iPhone XR/xr-black-front.png",
    "https://xpressphone-backend.herokuapp.com/Apple iPhone XR/xr-black-back.png"
],

2 个答案:

答案 0 :(得分:0)

这不是有效的json文件,您应该删除{"totalTax": 0},这部分或转换为"totalTax": 0

data = {}
phoneImages = [image['url'] for image in phone['devices'][0]['variants'][0]['phoneImages']]
data['image'] = phoneImages
print(data)

O / P:

{'image': ['//images.ctfassets.net/7bx5buq4osbe/4tfPcjBNmnbWupJ7byONiZ/0f27dc736403c4027bbf13f184ffd4fc/PIXEL3A-BLACK-FRONT.png', '//images.ctfassets.net/7bx5buq4osbe/1UVKkXIBCUPkKJ8ROvFkOO/8f25b2c57bfd774792dfb69ed1d3cc29/PIXEL3A-BLACK-SIDE.png', '//images.ctfassets.net/7bx5buq4osbe/1K2AP67ZhWb9pBtIp3r1sj/755bdc263d4a6e43e8275bea2beb92d3/PIXEL3A-BLACK-BACK.png']}

答案 1 :(得分:0)

urls = []

phoneImages = phone['variants'][0]['phoneImages']

for phoneImage in phoneImages:
  urls.append = phoneImage['url']