Python 属性错误:';模块';对象没有属性';连接';

Python 属性错误:';模块';对象没有属性';连接';,python,sqlite,attributeerror,Python,Sqlite,Attributeerror,我的代码的开头是: import sqlite3 def construct_query(card_name, card_type,card_type_whole, power, tough, card_text, exp,rare): query = "INSERT INTO CardComponet (all column names) VALUES ('{}','{}',{},{},'{}','{}','{}')".format(card_name, card_type_who

我的代码的开头是:

import sqlite3

def construct_query(card_name, card_type,card_type_whole, power, tough, card_text, exp,rare):

    query = "INSERT INTO CardComponet (all column names) VALUES ('{}','{}',{},{},'{}','{}','{}')".format(card_name, card_type_whole, power, tough, card_text, exp,rare)
    return query

path_to_flat_file = 'C:\Users\Mrs Rose\Desktop\inputf.txt'

flat_file_object  = open(path_to_flat_file, 'r')

connection = sqlite3.connection('practice1.db')

cursor  = connection.cursor()
但我的错误是:

Traceback (most recent call last):
  File "C:\Users\Mrs rose\Desktop\FinalProject.py", line 11, in <module>
    connection = sqlite3.connection('practice1.db')
AttributeError: 'module' object has no attribute 'connection'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Mrs rose\Desktop\FinalProject.py”,第11行,在
connection=sqlite3.connection('practice1.db')
AttributeError:“模块”对象没有属性“连接”

我尝试更改我的.py名称和数据库名称,但没有任何效果。如果可以的话,请帮忙

sqlite3.连接不存在。您要查找的函数称为:

导入sqlite3 >>>sqlite3.connect >>>
此外,决不能使用
str.format
或类似工具将值插入查询。从:

通常,SQL操作需要使用Python中的值 变量。您不应该使用Python的字符串组合查询 因为这样做是不安全的;它使你的程序 易受SQL注入攻击(有关详细信息,请参阅 可以出错的幽默例子)

相反,使用DB-API的参数替换。将
作为 在需要使用值的任何位置使用占位符,然后提供元组 作为游标的
execute()
方法的第二个参数的值。 (其他数据库模块可能使用不同的占位符,例如
%s
:1


sqlite3模块没有名为“connection”的属性,但有名为connect的属性。您应该尝试“connection=sqlite3.connect('practice1.db')”

我发现了几个可能的错误:

  • 从文件路径来看,我猜您在窗口上。好的,您需要更改文件路径:
    C:\\Users\\Mrs Rose\\Desktop\
    ,以避免混淆为转义字符

  • 在我的IDE上,
    sqlite3
    模块没有方法
    连接
    。。可能是
    连接


  • 我想你的意思是:
    connection=sqlite3.connect('practice1.db')
    非常感谢!我对python一点也不熟悉,所以我实际上试过了?我得到了一个错误-->操作错误:尝试编写一个只读数据库,而
    没有问题。您的数据库是只读的。也就是说,您不能编辑其内容,只能阅读。如何更改此设置?我不是数据库专家,但该设置通常基于您的用户权限。如果您不是数据库的所有者,则需要让所有者为您更改权限。如果你是主人,那么你可以自己做。基本上,在创建数据库时,它被标记为只读。
    >>> import sqlite3
    >>> sqlite3.connect
    <built-in function connect>
    >>>