我正在使用Pycharm 2017.3。我的python版本是3.4。
我试图使用sqlite4和pyqt将数据插入表中。
我已成功创建了一个表,但无法插入任何数据。
以下是我要介绍的内容
from PyQt4.QtGui import *
site_pack_path = "C:\\Python34\\Lib\\site-packages"
QApplication.addLibraryPath('{0}\\PyQt4\\plugins'.format(site_pack_path))
from PyQt4.QtSql import *
from PyQt4.QtCore import *
import sys
from urllib.request import Request, urlopen
下面是我如何创建表的
query.exec_("CREATE TABLE dictin(ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"word varchar(100), searchShortDefn varchar(300),mnemonics varchar(500), "
"defArr varchar(500), defDict varchar(500))")
然后有一个函数,其目的是将数据插入到不工作的表中。
def getWordsAndInsert(word, searchShortDefn, mnemonics, defArr, defDict):
word=str(word)
searchShortDefn=str(searchShortDefn)
mnemonics=str(mnemonics)
defArr=str(defArr)
defDict=str(defDict)
print(query.exec_("INSERT INTO dictin(word, searchShortDefn, mnemonics, defArr, defDict) "
"VALUES(word, searchShortDefn, mnemonics, defArr, defDict)"))
正如您所看到的,我已经将所有内容都转换为字符串,因为我的内容不是字符串。
传递给getWordsAndInsert方法的参数类型为
class 'str'
class 'str'
class 'str'
class 'list'
class 'list'
分别地
下面是调用函数getWordsAndInsert的示例
getWordsAndInsert("abbreviate",
"shorten",
"abbreviate consists of brevity(means brief)",
['(verb) reduce in scope while retaining essential elements', '(verb) shorten'],
[{'syn': ['renounce'], 'sent': ['The King abdicated when he married a divorcee']}])
虽然我可以在用实际字符串替换变量时插入,但显然这并不能完成工作。
print(query.exec_("INSERT INTO dictin(word, searchShortDefn, mnemonics, defArr, defDict) "
"VALUES('word', 'searchShortDefn', 'mnemonics', 'defArr', 'defDict')"))