Python sqlite3 db: правильно структурировать базу данных.Пропустить первый столбец при записи в БД.Избегайте столбцов только с 1 ячейкой - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть скрипт на python, который записывает данные в базу данных sqlite3.В нем 26 столбцов, но 15 из этих столбцов требуют только 1 ячейки данных.

Вместо 15 столбцов, в каждом из которых есть 1 ячейка данных, я бы хотел собрать их только в один (или два) столбца.Я не знаю, как это сделать с Sqlite3.Я подумал, может быть, распечатать все настройки в первом или двух столбцах, а затем оттуда при записи в базу данных сказать sqlite3 игнорировать / пропустить первые несколько столбцов.Это возможно?

Позже я загружаю базу данных в db browser для sqlite и экспортирую в csv, а затем загружаю их в excel / google doc.Я надеялся избежать необходимости делать много копий / вставок после импорта в документ Excel / Google, правильно структурировав его с самого начала.

Текущая база данных

| 1| Time      | Type  | Price    | Amount  | Gain     | Market    | Option 1 | Acc     | Setting a | Setting b  |
| 2|-----------|-------|----------|---------|----------|-----------|----------|---------|-----------|------------|
| 3| 22:12:15  | Buy   | 660.33   | 0.0130  | 8.58429  | Market 1  | 0.00085  | DD_23   | 0.00233   |     5      |
| 4| 22:12:15  | Sell  | 659.58   | 0.0070  | 4.61706  |           |          |         |           |            |
| 5| 19:36:08  | Buy   | 670.00   | 0.0082  | 5.49400  |           |          |         |           |            |
| 6| 19:36:08  | Sell  | 670.33   | 0.0058  | 3.88791  |           |          |         |           |            |
| 7| 19:36:08  | Buy   | 671.23   | 0.0060  | 4.02738  |           |          |         |           |            |
| 8| 13:01:41  | Sell  | 667.15   | 0.0015  | 1.00073  |           |          |         |           |            |
| 9| 13:01:41  | Buy   | 667.10   | 0.0185  | 12.3414  |           |          |         |           |            |
|10| 07:14:36  | Sell  | 657.55   | 0.0107  | 7.03579  |           |          |         |           |            |
|11| 07:14:36  | Buy   | 657.08   | 0.0005  | 0.32854  |           |          |         |           |            |
|12| 07:14:36  | Sell  | 656.59   | 0.0088  | 5.77799  |           |          |         |           |            |

Желаемое решение 1: Решение с одной колонной

| 1| Script info | Time      | Type  | Price    | Amount  | Gain     |
| 2|-------------|-----------|-------|----------|---------|----------|
| 3| Market      | 22:12:15  | Buy   | 660.33   | 0.0130  | 8.58429  |
| 4| Market 1    | 22:12:15  | Sell  | 659.58   | 0.0070  | 4.61706  |
| 5| Option 1    | 19:36:08  | Buy   | 670.00   | 0.0082  | 5.49400  |
| 6| 0.00085     | 19:36:08  | Sell  | 670.33   | 0.0058  | 3.88791  |
| 7| Acc         | 19:36:08  | Buy   | 671.23   | 0.0060  | 4.02738  |
| 8| DD_23       | 13:01:41  | Sell  | 667.15   | 0.0015  | 1.00073  |
| 9| Setting a   | 13:01:41  | Buy   | 667.10   | 0.0185  | 12.3414  |
|10| 0.00233     | 07:14:36  | Sell  | 657.55   | 0.0107  | 7.03579  |
|11| Setting b   | 07:14:36  | Buy   | 657.08   | 0.0005  | 0.32854  |
|12| 5           | 07:14:36  | Sell  | 656.59   | 0.0088  | 5.77799  |

Желаемое решение 2: Решение с двумя колонками

| 1| Script info | Script settings | Time      | Type  | Price    | Amount  | Gain     |
| 2|-------------|-----------------|-----------|-------|----------|---------|----------|
| 3| Market      | Market 1        | 22:12:15  | Buy   | 660.33   | 0.0130  | 8.58429  |
| 4| Option 1    | 0.00085         | 22:12:15  | Sell  | 659.58   | 0.0070  | 4.61706  |
| 5| Acc         | DD_23           | 19:36:08  | Buy   | 670.00   | 0.0082  | 5.49400  |
| 6| Setting a   | 0.00233         | 19:36:08  | Sell  | 670.33   | 0.0058  | 3.88791  |
| 7| Setting b   | 5               | 19:36:08  | Buy   | 671.23   | 0.0060  | 4.02738  |
| 8|             |                 | 13:01:41  | Sell  | 667.15   | 0.0015  | 1.00073  |
| 9|             |                 | 13:01:41  | Buy   | 667.10   | 0.0185  | 12.3414  |
|10|             |                 | 07:14:36  | Sell  | 657.55   | 0.0107  | 7.03579  |
|11|             |                 | 07:14:36  | Buy   | 657.08   | 0.0005  | 0.32854  |
|12|             |                 | 07:14:36  | Sell  | 656.59   | 0.0088  | 5.77799  |

1 Ответ

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

РЕДАКТИРОВАТЬ [чтобы изучить идею, упомянутую в комментариях]:

Вместо 15 столбцов / значений для описания группы выбора, возможно, вы могли бы:

  • Создать строку в Python и описать группу выбора.Что-то вроде «Настройка 1: значение 1, Настройка 2: значение 2, ....... Настройка 15: значение 15»
  • Заменить 15 столбцов одним столбцом TEXT
  • Вставить текстдля каждой строки в группе выбора.


Я не уверен, какую проблему вы пытаетесь решить.Это

... Я загружаю базу данных в браузер БД для sqlite и экспортирую в CSV, а затем загружаю их в Excel / Google DOC.

указывает мне, что эторучной процесс.

Этот

при записи в базу данных говорит sqlite3 игнорировать / пропускать первые несколько столбцов.

указывает мне, что вы толькохочу эти столбцы в экспорте.

Time | Type | Price | Amount | Gain

Не могли бы вы написать запрос SELECT time,type,price,amount,gain from thetable и затем выбрать «Экспорт в CSV» из маленького значка справа от панели результатов?

Или, может быть, проще, если вы собираетесь отказаться от «данных с 1 ячейкой», не загружайте их в первую очередь.Или загрузите их в другую таблицу (на стороне Python).

Или, возможно, я не понимаю проблемы:)

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