Я хочу преобразовать файл JSON, созданный в базу данных SQLite.
Я намерен позже решить, какой контейнер данных и точка входа лучше всего, json (ввод данных через текстовый редактор) или SQLite (ввод данных через графические интерфейсы, подобные SQLiteStudio).
Мой json файл похож на этот (содержащий данные о трафике с некоторых перекрестков в моем городе):
...
"2011-12-17 16:00": {
"local": "Av. Protásio Alves; esquina Ramiro Barcelos",
"coord": "-30.036916,-51.208093",
"sentido": "bairro-centro",
"veiculos": "automotores",
"modalidade": "semaforo 50-15",
"regime": "típico",
"pistas": "2+c",
"medicoes": [
[32, 50],
[40, 50],
[29, 50],
[32, 50],
[35, 50]
]
},
"2011-12-19 08:38": {
"local": "R. Fernandes Vieira; esquina Protásio Alves",
"coord": "-30.035535,-51.211079",
"sentido": "único",
"veiculos": "automotores",
"modalidade": "semáforo 30-70",
"regime": "típico",
"pistas": "3",
"medicoes": [
[23, 30],
[32, 30],
[33, 30],
[32, 30]
]
}
...
И я создал хорошую базу данных с отношением "один ко многим" с этими строками кода Python:
import sqlite3
db = sqlite3.connect("fluxos.sqlite")
c = db.cursor()
c.execute('''create table medicoes
(timestamp text primary key,
local text,
coord text,
sentido text,
veiculos text,
modalidade text,
pistas text)''')
c.execute('''create table valores
(id integer primary key,
quantidade integer,
tempo integer,
foreign key (id) references medicoes(timestamp))''')
НО проблема заключается в том, что когда я собирался вставлять строки с фактическими данными с чем-то вроде c.execute("insert into medicoes values(?,?,?,?,?,?,?)" % keys)
, я понял, что, поскольку в файле dict, загруженном из файла JSON, нет специального порядка, он неправильно отображает порядок столбцов базы данных.
Итак, я спрашиваю: "какую стратегию/метод следует использовать для программного чтения ключей из каждого" блока "в файле JSON (в данном случае" локальный "," координирующий "," отправленный "," veiculos "," modalidade "," mode "," pistas "e" medicoes"), создать базу данных с столбцами в том же порядке, а затем вставить строки с соответствующими значениями??
У меня есть хороший опыт работы с Python, но я только начинаю с SQL, поэтому я хотел бы получить некоторые рекомендации о хороших практиках и не обязательно готовый рецепт.
Спасибо за чтение!