@ambal245

Как создать JSON из массива с повторением первого элемента?

Недавно начал изучать Python/ Имеется массив такого рода
videos = [[1,1,'url'],[1,2,'url'],[1,3,'url'],[2,1,'url'],[2,2,'url']]

где первый элемент это сезон, второй - серия, третий - ссылка

Ни как не получается создать JSON такого вида:
[{
    "1": {
           "1": {"url"},
           "2": { "url" },
           "3": {"url"}
          },
      "2": {
              "1": { "url" },
              "2": { "url" }
            }
   }]

Все что мог получить в цикле for :
spoiler
[{1: ['url']}, {3: ['url']}, {2: ['url']}, {1: ['url']}, {2: ['url']}]

{1: {'url'}, 2: {'url'}}
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
{"url"} - это не валидный json объект


Стоит лучше и тщательнее читать учебник про циклы и объекты в питоне

import json
import collections
videos = [[1,1,'url'],[1,2,'url'],[1,3,'url'],[2,1,'url'],[2,2,'url']]

new = collections.defaultdict(dict)

for season, series, url in videos:
    new[season][series] = url

print(json.dumps(new, indent=4))

{
    "1": {
        "1": "url",
        "2": "url",
        "3": "url"
    },
    "2": {
        "1": "url",
        "2": "url"
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы