Сохранение данных о песнях, исполнителях и альбомах в App Engine

Мне нужно хранить информацию о художниках, альбомах и песнях в Google App Engine для проекта, над которым я работаю. Информация представляет собой метаданные, взятые из каталога MP3 (с использованием Python), который необходимо отправить в App Engine для отображения пользователям. Наряду с метаданными, путь песни должен быть сохранен.

В настоящее время во время сканирования я храню данные в списке словарей с именем «Художники», каждый артистический словарь имеет имя и список словарей альбома, а в каждом альбоме есть имя и список словарей песен, каждая песня содержит некоторые метаданные и путь к MP3.

Я думал о способах хранения этих данных и попытался отправить данные в формате JSON в App Engine, а затем обработать это на три модели: Artist, содержащий имя и повторяющийся KeyProperty для каждого альбома, альбом затем имеет имя и повторный KeyProperty для каждой песни, а песня содержит остальную часть метаданных. Каждая из них также будет содержать KeyProperty, относящуюся к группе, к которой они принадлежат.

Проблемы с этим: много повторяющихся данных (Group Keys) и обработка данных не только часто превышают крайний срок запроса, но также используют непристойное количество записей хранилища данных.

Единственный способ, с помощью которого я мог бы решить эти проблемы, – сохранить JSON, предоставленный после сканирования, как JsonProperty, а затем передать это непосредственно пользователю для обработки на стороне клиента с помощью JavaScript. Единственная проблема, которую я мог видеть, заключается в том, что я не хочу особо указывать путь к пользователю (так как это нужно будет возвращать и действовать дальше).

Кто-нибудь имеет опыт использования или хранения данных такого типа или может предоставить любые внешние решения?

2 Solutions collect form web for “Сохранение данных о песнях, исполнителях и альбомах в App Engine”

То, что вы, вероятно, хотите, – это большая таблица песен со всем в ней. Ваш стол будет выглядеть примерно так:

Song | Artist | Album | Meta data | Track Number | Release Year | etc

Забудьте об этом как о реляционной базе данных. Подумайте об этом вместо того, как ваш пользователь будет извлекать данные. Скорее всего, все ваши поиски будут из этого основного стола.

Вам также понадобится таблица артистов, но это может просто содержать художника и их биографию. Если вы хотите увидеть все свои песни, просто отфильтруйте таблицу Songs по имени исполнителя или ID. Если вы хотите увидеть их альбомы, вы можете сделать то же самое и использовать distinct предложение (или просто набить их все в set ).

Альбом очень похож на Artists, за исключением того, что он может иметь свои собственные метаданные.

Если вы хотите код, попробуйте этот другой аналогичный вопрос .

Я обработал данные из json и поместил их в Model. Что касается схемы, вам действительно не нужно беспокоиться об избыточности, так как вы не можете действительно думать о ndb как реляционной базе данных. Поэтому не беспокойтесь о нормализации схемы.

Но не обрабатывайте на стороне клиента, это действительно не лучший способ спроектировать его так.

  • Модуль json для Python преобразует ключи словаря в строки
  • Получение значений из JSON с использованием Python
  • ValueError в декодировании json
  • Как отправить JSON через HTTP в Ruby после преобразования из Python?
  • Невозможно установить тип контента в application / json с помощью urllib2
  • Как вернуть словарь json в django ajax update
  • JSON появляется как юникодные объекты в шаблоне Jinja2
  • Получите значение конкретного элемента JSON в Python
  •  
    Interesting Posts for Van-Lav

    Установка стиля летчика (outlier) в Seaborn boxplot игнорируется

    Использование первой строки как переменной с python

    Как использовать OR с помощью системы фильтров Django?

    pandas обработка numpy timedelta64

    Поиск локальных максимумов графика точек данных xy с numpy?

    Как сохранить данные в таблице cassandra, используя искру saveToCassandra?

    Perl для переводчика кода Python / Ruby

    Гифы, открытые с помощью python, имеют разбитые кадры

    возможно ли получить пурпурный пучок python либо в cygwin, либо в Linux, который не является debian?

    DeadlineExceededErrors с обновляемым токеном доступа GAE / Google API

    Видео, созданное с помощью ffmpeg, не будет воспроизводиться в видеоплеере

    Почему серия Pandas DataFrame означает неудачу, но ее сумма не существует, и как заставить ее работать

    Функция dir () в командной строке против IDLE

    Преобразование dict вложенных списков в список кортежей

    Как передать свой идентификатор и пароль на сайт в Python с помощью Google App Engine?

    Python - лучший язык программирования в мире.