как получить доступ к нескольким слоям словарей и списков, вложенных друг в друга, и собрать их в список - PullRequest
0 голосов
/ 08 июня 2019

Я ищу доступ к URL-адресам изображений в этом файле JSON.Однако я могу зайти так далеко в гнезде.Я дошел до изображения, которое выводит «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 голосов
/ 08 июня 2019
urls = []

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

for phoneImage in phoneImages:
  urls.append = phoneImage['url']
0 голосов
/ 08 июня 2019

Это неверный файл 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']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...