OperationalError:(sqlite3.OperationalError)无法打开数据库fi

2024-09-27 23:47:31 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我知道有一些类似这样的问题,我读了它们,但它们对我没有用处。在

我有一些来自金融市场的.csv文件,我想将它们传输到SQLite3数据库表中。为此,我使用了一个Python包,但是我遇到了一个很大的错误。在

以下是示例数据:

EUR/USD,20170102 00:00:01.265,1.0523,1.05307
EUR/USD,20170102 00:00:05.818,1.0523,1.05307
EUR/USD,20170102 00:00:06.833,1.05158,1.05349

让我们一步一步来:所有csv文件和DB都在D驱动器中。我创建了新浪数据库,然后使用以下命令创建了Sina1表(在SQLite Studio中):

^{pr2}$

然后我尝试用Python(Anaconda)代码输入数据:

[有2个csv文件。两者相同,但第一个带有标题,第二个没有标题,如Odo文档中所述。]

import sqlite3
from odo import odo, discover, resource 

# connect to sina database
conn = sqlite3.connect('d:/sina.db')

# use odo to detect the shape and datatype of csv file
data_shape = discover(resource('d:/with_header.csv'))

# Transfer from csv file to table called 'sina1' within database 'sina.db'
odo('d:/parsclick/without_header.csv', 'sqlite:////d:/sina.db::sina1', dshape = data_shape)

# close database
conn.close()

我用不同的方法逐行测试了这段代码。我在这个数据库中创建了一个新的表(使用SQLite studio),并在python解释器中用select命令获取数据,这样就不会出现连接问题,我手动输入了数据形状,格式如下(与表相同):

 data_shape = "var * {simbole: string, DateTime: string, Bid: float64, Ask: float64}"

这与:

var * {simbole: ?string, DateTime: ?datetime, Bid: float64, Ask: float64}

从第一个代码中获取。在

我还更改了D驱动器中所有文件的权限,使每个人都可以完全访问,并将计算机(windows 10)作为管理。此外我检查了路径。 但这些并没有改变故事,每次都会造成这样的错误:

File "C:\ProgramData\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 410, in connect return self.dbapi.connect(*cargs, **cparams)

OperationalError: (sqlite3.OperationalError) unable to open database file (Background on this error at: http://sqlalche.me/e/e3q8)


Tags: 文件csvto数据代码数据库connecteur

热门问题