我正在尝试从sqlite数据库(大小为4 gb)读取表。该表的每个单元格都是一个json(很少单元格中包含大型json格式的文件)。
当我在数据库浏览器中执行查询时,该查询工作正常,但是在Python中,它给出了一个错误:“数据库磁盘映像格式错误”
我尝试使用其他表,但问题仍然存在。通过查询获取的行数约为5000。但是,每个单元格本身可能都有一个较长的json结构化字符串(大约10000行)。
我已经尝试使用数据库的副本和其他数据库。我也尝试在数据库中跟随 语用完整性检查; 语法temp_store = 2; //将数据强制进入RAM
这个问题似乎与实际的数据库相关联的是Pandas / Python
Python
conn = sqlite3.connect(db)
sql = """
select a.Topic, a.Timestamp, a.SessionId, a.ContextMask, b.BuildUUID, a.BuildId, a.LayerId,
a.Payload
from MessageTable a
inner JOIN
BuildTable b
on a.BuildId = b.BuildId
where a.Topic = ('Engine/Sensors/SensorData')
and b.BuildUUID = :job
"""
cur = conn.cursor()
cur.execute(sql, {"job" : '06c95a97-40c7-49b7-ad1b-0d439d412464'})
sensordf = pd.DataFrame(data = cur.fetchall(), columns = ['Topic', 'Timestamp_epoch', 'SessionId', 'ContextMask'
'BuildUUID', 'BuildId', 'LayerId', 'Payload'])
我希望输出在pandas数据框中,最后一列在每个单元格中包含json值。我可以进一步编写一些脚本以从json进行解析,以提取更多数据。