Вы, вероятно, должны использовать вложенные циклы ... что именно вы должны печатать, зависит от того, как вы ожидаете, что ваш вывод будет выглядеть ... но вы можете попробовать это:
#!/usr/bin/env python3
import json
data = '{"297050": [[12, 137], [193, 776]], "297056": [[12, 203]]}'
data = json.loads(data)
for k, v in data.items():
print(k)
for list_of_ints in v:
for integer in list_of_ints:
print(integer)
Результат:
297050
12
137
193
776
297056
12
203
Объяснение:
Мы загружаем образец json и используем items
для перебора его пар ключ-значение.Теперь наши ключи в k
, а самый внешний список в v
.v
- это список и список списков .. поэтому мы повторяем это как list_of_ints
.И, наконец, мы перебираем каждый из этих списков, распечатывая внутренние целые числа по ходу дела.
Если в качестве выходных данных вы хотите:
Для записи 297050 это список [12, 137], [193, 776] Для записи 297056 это список [12,203]
Тогда мы можем просто немного изменить скрипт ... и избавиться от множества циклов.
#!/usr/bin/env python3
import json
output = "For entry {} this is the list {}"
data = '{"297050": [[12, 137], [193, 776]], "297056": [[12, 203]]}'
data = json.loads(data)
for k, v in data.items():
lists_with_commas = ", ".join([str(x) for x in v])
print(output.format(k, lists_with_commas), end=" ")
Вывод
For entry 297050 this is the list [12, 137], [193, 776] For entry 297056 this is the list [12, 203]
Объяснение:
Мы используем строку шаблона .. у нее есть {}
, куда мы хотим поместить материал, чтобы мы могли запустить .format
позже.
Нам нужны только ключи и самые внутренние списки.Так что нам нужен только один цикл for
.Мы удостоверимся, что мы получаем запятые в примере, используя .join
, и внутри мы делаем понимание списка, которое превращает все списки в строки внутри v
.