Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—尝试从数据库中提取答案制作问卷_Python_Sql - Fatal编程技术网

Python—尝试从数据库中提取答案制作问卷

Python—尝试从数据库中提取答案制作问卷,python,sql,Python,Sql,根据标题,这是我正在运行的数据库(使用LiClipse),但是它不起作用,我也不知道为什么(注意:我看了youtube视频试图解决这个问题,我只是对python非常陌生,根本不知道如何真正去做。 除此之外,我甚至不确定使用Liclipse是否是最好的选择。这是一位朋友建议的…我认为create\u table()data\u entry()方法中的查询不正确 我无法确定您是在数据项方法内部还是外部关闭光标和连接,因为您的缩进没有正确使用提供的代码,所以我将它们放在下面,或者您可以在数据项方法内部

根据标题,这是我正在运行的数据库(使用LiClipse),但是它不起作用,我也不知道为什么(注意:我看了youtube视频试图解决这个问题,我只是对python非常陌生,根本不知道如何真正去做。
除此之外,我甚至不确定使用Liclipse是否是最好的选择。这是一位朋友建议的…

我认为create\u table()data\u entry()方法中的查询不正确

我无法确定您是在
数据项
方法内部还是外部关闭光标和连接,因为您的缩进没有正确使用提供的代码,所以我将它们放在下面,或者您可以在
数据项
方法内部关闭它们

# insertions with SQL

# importing module
import sqlite3

# connecting to the database 
conn = sqlite3.connect("illness.db")

c = conn.cursor()

def create_table():
c.execute("CREATE TABLE IF NOT EXISTS illnesses(illnessID INTAGER PRIMARY KEY NOT NULL, illness VARCHAR(30), illnessinfo VARCHAR(50)") 
c.execute("CREATE TABLE IF NOT EXISTS symptoms(symptomID INTAGER PRIMARY KEY NOT NULL, symptom VARCHAR(50)")

def data_entry():
c.execute("INSERT INTO illnesses VALUES(,'Flu','Influenza - Common Cold.')")
c.execute("INSERT INTO illnesses VALUES(,'Acne','Skin Condition')")
c.execute("INSERT INTO illnesses VALUES(,'Alcohol Misuse','Mega Hangover')")
c.execute("INSERT INTO symptoms VALUES(,'Headache')")
c.execute("INSERT INTO symptoms VALUES(,'Spots')")
c.execute("INSERT INTO symptoms VALUES(,'Breathing problems')")
conn.commit()
c.close()
conn.close()

create_table()
data_entry()
这个也应该有效

# insertions with SQL

# importing module
import sqlite3

# connecting to the database 
conn = sqlite3.connect("illness.db")
c = conn.cursor()

def create_table():

    c.execute("CREATE TABLE IF NOT EXISTS illnesses(illnessID INTAGER PRIMARY KEY NOT NULL, illness VARCHAR(30), illnessinfo VARCHAR(50))")
    c.execute("CREATE TABLE IF NOT EXISTS symptoms(symptomID INTAGER PRIMARY KEY NOT NULL, symptom VARCHAR(50))")

def data_entry():

    c.execute("INSERT INTO illnesses(illnessID, illness , illnessinfo) VALUES(123,'Flu','Influenza - Common Cold.')")
    c.execute("INSERT INTO illnesses(illnessID, illness , illnessinfo) VALUES(1234,'Acne','Skin Condition')")
    c.execute("INSERT INTO illnesses(illnessID, illness , illnessinfo) VALUES(345,'Alcohol Misuse','Mega Hangover')")
    c.execute("INSERT INTO symptoms (symptomID,symptom) VALUES(567,'Headache')")
    c.execute("INSERT INTO symptoms (symptomID,symptom) VALUES(234,'Spots')")
    c.execute("INSERT INTO symptoms (symptomID,symptom) VALUES(789,'Breathing problems')")


create_table()
data_entry()

conn.commit()
c.close()
conn.close()

我认为create_table()data_entry()方法中的查询不正确

我无法确定您是在
数据项
方法内部还是外部关闭光标和连接,因为您的缩进没有正确使用提供的代码,所以我将它们放在下面,或者您可以在
数据项
方法内部关闭它们

# insertions with SQL

# importing module
import sqlite3

# connecting to the database 
conn = sqlite3.connect("illness.db")

c = conn.cursor()

def create_table():
c.execute("CREATE TABLE IF NOT EXISTS illnesses(illnessID INTAGER PRIMARY KEY NOT NULL, illness VARCHAR(30), illnessinfo VARCHAR(50)") 
c.execute("CREATE TABLE IF NOT EXISTS symptoms(symptomID INTAGER PRIMARY KEY NOT NULL, symptom VARCHAR(50)")

def data_entry():
c.execute("INSERT INTO illnesses VALUES(,'Flu','Influenza - Common Cold.')")
c.execute("INSERT INTO illnesses VALUES(,'Acne','Skin Condition')")
c.execute("INSERT INTO illnesses VALUES(,'Alcohol Misuse','Mega Hangover')")
c.execute("INSERT INTO symptoms VALUES(,'Headache')")
c.execute("INSERT INTO symptoms VALUES(,'Spots')")
c.execute("INSERT INTO symptoms VALUES(,'Breathing problems')")
conn.commit()
c.close()
conn.close()

create_table()
data_entry()
这个也应该有效

# insertions with SQL

# importing module
import sqlite3

# connecting to the database 
conn = sqlite3.connect("illness.db")
c = conn.cursor()

def create_table():

    c.execute("CREATE TABLE IF NOT EXISTS illnesses(illnessID INTAGER PRIMARY KEY NOT NULL, illness VARCHAR(30), illnessinfo VARCHAR(50))")
    c.execute("CREATE TABLE IF NOT EXISTS symptoms(symptomID INTAGER PRIMARY KEY NOT NULL, symptom VARCHAR(50))")

def data_entry():

    c.execute("INSERT INTO illnesses(illnessID, illness , illnessinfo) VALUES(123,'Flu','Influenza - Common Cold.')")
    c.execute("INSERT INTO illnesses(illnessID, illness , illnessinfo) VALUES(1234,'Acne','Skin Condition')")
    c.execute("INSERT INTO illnesses(illnessID, illness , illnessinfo) VALUES(345,'Alcohol Misuse','Mega Hangover')")
    c.execute("INSERT INTO symptoms (symptomID,symptom) VALUES(567,'Headache')")
    c.execute("INSERT INTO symptoms (symptomID,symptom) VALUES(234,'Spots')")
    c.execute("INSERT INTO symptoms (symptomID,symptom) VALUES(789,'Breathing problems')")


create_table()
data_entry()

conn.commit()
c.close()
conn.close()

你能提供错误吗?现在我看到的是你在方法外面创建了
c=conn.cursor()
并在方法里面使用它。上面写着Traceback,main(),globals=debugger.run(setup['file',None,None,is_module),pydev_导入.exefile(file,globals,locals)#执行脚本,exec(compile)(contents+“\n”,file,'exec'),glob,loc),create_table(),syntax error create_table()方法查询您有语法错误,qery字符串的结尾应该是“')`c.execute(“创建表如果不存在疾病(illnessID INTAGER主键不为NULL,疾病VARCHAR(30),illnessinfo VARCHAR(50))”)c.execute(“创建表如果不存在症状(symptomID INTAGER主键不为NULL,symptom VARCHAR(50))`警告:未找到使用cython的调试器加速。运行''C:\Users\Owner\AppData\Local\Programs\Python\Python36-32\Python.exe''C:\Users\Owner\.p2\pool\plugins\org.Python.pydev.core\u 6.3.1.201802272029\pysrc\setup\cython.Python“build\ext---inplace”到build.pydev调试器:启动(pid:14296)回溯(最后一次调用):文件“C:\Users\Owner\.p2\pool\plugins\org.python.pydev.core_6.3.1.201802272029\pysrc\pydevd.py”,第1621行,main()和一系列其他错误扫描您提供的错误,现在我看到的是您创建了
C=conn.cursor()
在方法的外部,并在方法的内部使用。上面写着Traceback,main(),globals=debugger.run(setup['file',None,None,is_module),pydev_imports.execfile(file,globals,locals)#执行脚本,exec(compile(contents+“\n”,file,'exec'),glob,loc),create_table(),语法错误create_table()方法查询您有语法错误qery字符串结尾应该是“')”`c.execute(“创建表如果不存在疾病(illnessID INTAGER主键不为NULL,疾病VARCHAR(30),illnessinfo VARCHAR(50)))))c.execute(“创建表如果不存在症状(症状ID INTAGER主键不为NULL,症状VARCHAR(50)))`警告:找不到使用cython的调试器加速。请运行“C:\Users\Owner\AppData\Local\Programs\Python\Python36-32\Python.exe”C:\Users\Owner\.p2\pool\plugins\org.Python.pydev.core\u 6.3.1.201802272029\pysrc\setup\u cython.py“build\u ext---inplace”进行生成。pydev调试器:开始(pid:14296)回溯(最近一次调用):文件“C:\Users\Owner\.p2\pool\plugins\org.python.pydev.core_6.3.1.201802272029\pysrc\pydevd.py”,main()中的第1621行和许多其他错误。主键无效,因为您向它添加了一个值:
代码:文件“C:\Users\Owner\eclipse workspace\Diss\db.py”,第31行,在data_entry()文件中”C:\Users\Owner\eclipse workspace\Diss\db.py”,第22行,在数据项C.execute(“插入到疾病(illnessID,disease,illnessinfo)值中(1,'Flu','Flu-普通感冒'))sqlite3.IntegrityError:UNIQUE constraint failed:Diseases.illnessID
这是因为一旦运行该方法,它会在再次运行时添加值,ID值会重复,因此它会违反主键约束这是一个附加信息,您可以使用一个带参数的方法,并将该方法分配给查询字符串,以便t您不必重复查询字符串,例如:
def insertIllness(record):c.execute(“INSERT-INTO disease(disease,illnessinfo)value(?,)”,record)
,您可以将此方法称为
insertIllness(['痤疮','Skin Condition'))
通过sqlite文档和python sqlite教程,您可以实现这一实践。Cheerso主键无效,因为您向它添加了一个值:
code:data\u entry()文件“C:\Users\Owner\eclipse workspace\Diss\db.py”第31行中的文件“C:\Users\Owner\eclipse workspace\Diss\db.py”“,第22行,在数据项c.execute中(“插入疾病(疾病ID、疾病、疾病信息)值(1、‘流感’、‘流感-普通感冒’)”)sqlite3.IntegrityError:UNIQUE constraint failed:Diseases.illnessID
这是因为一旦运行该方法,它会在再次运行时添加值,ID值会重复,因此它会违反主键约束这是一个附加信息,您可以使用一个带参数的方法,并将该方法分配给查询字符串,以便t您不必重复查询字符串,例如:
def insertIllness(record):c.execute(“INSERT-INTO disease(disease,illnessinfo)value(?,)”,record)
,您可以将此方法称为
insertIllness(['痤疮','Skin Condition'))
浏览sqlite文档和python sqlite教程,您可以实现这一实践。干杯