создать список из значений в массиве объектов - PullRequest
0 голосов
/ 01 августа 2020

как я составляю список из значений внутри города только для типа gasolina?

{ ... "fuelUse" : {
        "urban" : [ 
            {
                "value" : 6.2,
                "unit" : "km/l",
                "type" : "alcool"
            }, 
            {
                "value" : 8.9,
                "unit" : "km/l",
                "type" : "gasolina"
            }
        ],
},
...."fuelUse" : {
        "urban" : [ 
            {
                "value" : 7.8,
                "unit" : "km/l",
                "type" : "alcool"
            }, 
            {
                "value" : 10.4,
                "unit" : "km/l",
                "type" : "gasolina"
            }
        ],
}
}

вывод вроде: list = [8.9, 10.4]

Я попытался повторить итерацию в этом Кстати, но с ключевой ошибкой: 1

for c in cars:
   for a in c['fuelUse']['urban']:
      list.append(a[1]['value'])

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Я не совсем уверен, так как вы не предоставили всю структуру данных, но, согласно вашей попытке, это могло быть так:

output = [x.get("value") for car in cars for x in car.get("fuelUse").get("urban") if x.get("type") == "gasolina"]
0 голосов
/ 01 августа 2020

попробуйте

list.append(a['value']) 

вместо

list.append(a[1]['value']) 

Поскольку a не является списком, это единый объект, дальнейшая индексация не требуется.

Если вы хотите, чтобы значение второго элемента (тип gasolina) из каждого urban, вы должны пройти через них oop, а не внутри объекта.

for c in cars:
   for a in c['fuelUse']['urban']:
      if a['type'] == 'gasolina':
          list.append(a['value'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...