我希望将我创建的JSON文件转换为SQLite数据库。
我的意图是稍后决定哪个数据容器和入口点最好,json(通过文本编辑器进行数据输入)还是SQLite(通过类似于SQLiteStudio的电子表格GUI进行数据输入)。
我的JSON文件如下所示(包含来自我城市某些十字路口的交通数据):
但问题在于,当我准备使用类似于
因此,我的问题是:“我应该使用哪种策略/方法来以编程方式从JSON文件中的每个“块”中读取键(在本例中为“local”,“coord”,“sentido”,“veiculos”,“modalidade”,“regime”,“pistas”和“medicoes”),按照相同的顺序创建具有相应值的数据库列,并插入行?”
我在Python方面有一些经验,但刚开始接触SQL,因此我想了解一些关于良好实践的建议,而不仅仅是一个现成的配方。
我的意图是稍后决定哪个数据容器和入口点最好,json(通过文本编辑器进行数据输入)还是SQLite(通过类似于SQLiteStudio的电子表格GUI进行数据输入)。
我的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)
的语句插入实际数据行时,我意识到,由JSON文件加载的字典没有特定顺序,因此无法正确映射到数据库的列顺序。因此,我的问题是:“我应该使用哪种策略/方法来以编程方式从JSON文件中的每个“块”中读取键(在本例中为“local”,“coord”,“sentido”,“veiculos”,“modalidade”,“regime”,“pistas”和“medicoes”),按照相同的顺序创建具有相应值的数据库列,并插入行?”
我在Python方面有一些经验,但刚开始接触SQL,因此我想了解一些关于良好实践的建议,而不仅仅是一个现成的配方。
columns
是硬编码的,我希望这些字符串可以从文件中读取。最好是按照相同的顺序。你觉得呢? - heltonbiker