使用PyODBC、Python连接到SQLite3服务器

使用PyODBC、Python连接到SQLite3服务器,python,sql,sqlite,Python,Sql,Sqlite,我试图测试一个类,该类从给定查询的SQL server加载数据。为此,我被指示使用sqlite3。现在的问题是,虽然该类能够轻松地连接到真正的数据库,但我正在努力连接我创建的临时sqlite3服务器,因为我无法确定连接字符串应该是什么样子。我在类中使用pyodbc连接数据库。那么,有人知道连接字符串应该是什么样子吗 该类如下所示: import petl as etl import pyodbc class Loader: """ This is a class from which o

我试图测试一个类,该类从给定查询的SQL server加载数据。为此,我被指示使用
sqlite3
。现在的问题是,虽然该类能够轻松地连接到真正的数据库,但我正在努力连接我创建的临时
sqlite3
服务器,因为我无法确定连接字符串应该是什么样子。我在类中使用
pyodbc
连接数据库。那么,有人知道连接字符串应该是什么样子吗

该类如下所示:

import petl as etl
import pyodbc
class Loader:
  """
  This is a class from which one can load data from an SQL server.
  """

  def __init__(self, connection_string):
      """
      This is the initialization file, and it requires the connection_string.

      :param connection_string:
      :type connection_string: str
      :return:
      """

      self.connection = pyodbc.connect(connection_string)

  def loadFromSQL(self, query):
      """
      This function loads the data according to the query passed in query.

      :param query:
      :type query: str
      """

      self.originalTableETL = etl.fromdb(self.connection, query)

      self.originalTablePD = etl.todataframe(self.originalTableETL)
临时
sqlite3
服务器如下

import sqlite3 as lite
con = lite.connect('test.db')
with con:
  cur = con.cursor()
  cur.execute("DROP TABLE IF EXISTS test_table")
  cur.execute("CREATE TABLE test_table(col1 TEXT, col2 TEXT)")
  cur.execute("INSERT INTO test_table VALUES('Hello', 'world!')")
所以,我想输入的是

tester = Loader('connection_string_goes_here')
tester.loadFromSQL("SELECT * FROM test_table")
编辑

好的,我在网上搜索了一下,发现一个可能的连接字符串是
“驱动程序={SQL Server};服务器=本地主机;数据库=test.db;可信连接=是”
。但是,连接在一段时间后超时,并返回以下错误消息:

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')
我觉得很奇怪,因为它是本地的,而且我没有指定任何密码。我还尝试指定确切的路径名,但没有成功

最好的


维克多解决了这个问题!从下载了SQLite的ODBC驱动程序,并定义了连接字符串,如

"DRIVER={SQLite3 ODBC Driver};SERVER=localhost;DATABASE=test.db;Trusted_connection=yes"

它成功了,希望这能帮助人们

您可以发布关于您创建的sqlite服务器的更多详细信息吗?到目前为止,您拥有的现有代码是什么?这里还有许多字符串的示例:当然,我会编辑!您使用的是众多SQLite ODBC驱动程序中的哪一个?我目前使用的是
sqlite3
pyodbc