Определение больших наборов данных в Python перед сохранением их в базе данных - PullRequest
0 голосов
/ 07 декабря 2018

Я создаю большой набор данных, который позже будет проанализирован и добавлен программно с использованием Python в базу данных (бэкэнд PostgresSQL через SQLAlchemy).

Итак, 2 вопроса:

  1. Каков наилучший способ составления, определения и хранения таких данных перед их вставкой в ​​БД?Это правильный способ сделать это?Кто-то все еще должен создавать такие структуры, подобные JSON, что утомительно, возможно, следует использовать совершенно другой подход.Я открыт для любых предложений.
  2. Эти структуры данных имеют тенденцию быть очень большими (10 тыс. Строк на один объект).Вот почему я пытаюсь поместить каждый отдельный объект в отдельный файл Python и импортировать их позже с помощью сценария импорта.Поскольку эти данные определены как const с определенным именем, как я должен импортировать их в другой модуль, не зная заранее его имени?Я могу импортировать *, но это не решает проблему, поскольку мне все еще нужно знать имя const, чтобы начать работать с ним.

Спасибо за ваши ответы и предложения.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

ОК, так что я сам нашел ответы на свои вопросы.Здесь есть:

  1. Простой JSON-формат с дальнейшей проверкой с использованием jsonschema должен использоваться
  2. Это должен быть файл JSON, а не Python с const внутри.Данные в файлах JSON должны быть самоописательными, поэтому будет достаточно просто перебрать все файлы JSON с дополнительным анализом.
0 голосов
/ 09 декабря 2018

В конце вы, вероятно, захотите сгладить структуру данных для таблицы и превратить каждую отдельную конфигурацию в отдельную строку в таблице, например так:

Table Cars

  maker  model  generation  year  body_type  fuel_type  drivetrain_type  gearbox_type  aspiration_type  displacement  cylinders  power_rating  modification
citroen     C5           I  2000   liftback     petrol              FWD            AT               NA           3.0          6           207
citroen     C5           I  2000   liftback     petrol              FWD            MT               NA           3.0          6           207

С любой другой таблицей, содержащей отображаемые имена

Table Display_Names

      id         display_name
 citroen              Citroen
      C5                   C5
       I                    I
liftback             Liftback
  petrol               Petrol
     FWD    Front Wheel Drive
      AT            Automatic
      MT               Manual
      NA  Naturally Aspirated

или таблица, непосредственно содержащая отображаемые имена.

Так что, вероятно, ваши JSON-данные должны отражать эту структуру, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...