在这篇文章中,我们将带领您了解SQLite和Python。值写入无错误,但程序终止后不会写入数据库的全貌,包括python数据写入数据库的相关情况。同时,我们还将为您介绍有关DjangoPythonP
在这篇文章中,我们将带领您了解SQLite和Python。值写入无错误,但程序终止后不会写入数据库的全貌,包括python数据写入数据库的相关情况。同时,我们还将为您介绍有关Django Python POST方法未写入数据库、objective-c – 使用SQLite3将实时接收的许多值写入iPhone上的数据库、Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件、Python - 不会写入 csv 文件中的特定列,而是重新写入整行的知识,以帮助您更好地理解这个主题。
本文目录一览:- SQLite和Python。值写入无错误,但程序终止后不会写入数据库(python数据写入数据库)
- Django Python POST方法未写入数据库
- objective-c – 使用SQLite3将实时接收的许多值写入iPhone上的数据库
- Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件
- Python - 不会写入 csv 文件中的特定列,而是重新写入整行
SQLite和Python。值写入无错误,但程序终止后不会写入数据库(python数据写入数据库)
我在脚本和Python中遇到了问题,该脚本从Internet下载数据并将其放入SQLite数据库。在执行开始时,我打开连接并分配光标。然后,将此游标发送到下载数据并将其写入数据库的方法。到目前为止,我知道create_schema方法是可行的,因为使用正确的结构创建了数据库,其他方法似乎失败了,但是在脚本中执行时不会引发错误。我尝试使用sqlite3终端工具进入数据库并从表中选择值,但是select
*返回空结果。我不太确定游标如何与方法一起使用,但是希望将其发布在这里可以帮助我更好地理解。预先感谢您的帮助。
(PS:很抱歉缩进。我没有找到一种一次性对所有文本进行缩进的好方法。有关此操作的任何提示?)
脚本:
# -*- coding: UTF-8 -*-import sqlite3import httplibimport urllib2import osfrom xml.dom import minidom, Nodefrom xml.etree import ElementTreeSITE = "http://data.stortinget.no/eksport/"DATA = "data.db"def get_perioder(cur): DOK = "stortingsperioder" try: page = urllib2.urlopen(SITE+DOK) except: print "Failed to fetch item "+DOK if page: tree = ElementTree.parse(page) root = tree.getroot() top = list(root)[2] elements = list(top) for el in elements: fra = el.find(''{http://data.stortinget.no}fra'').text per_id = el.find(''{http://data.stortinget.no}id'').text til = el.find(''{http://data.stortinget.no}til'').text print "id: %s fra: %s til: %s" % (per_id, fra, til) cur.execute("""INSERT INTO perioder(fra, id, til) VALUES(''%s'',''%s'',''%s'')""" % (fra, per_id, til))else: print "Could not load page: "+DOKreturn curdef get_sesjoner(cur):DOK = "sesjoner"try: page = urllib2.urlopen(SITE+DOK)except: print "Failed to fetch item "+DOKif page: tree = ElementTree.parse(page) root = tree.getroot() top = list(root)[2] elements = list(top) for el in elements: fra = el.find(''{http://data.stortinget.no}fra'').text ses_id = el.find(''{http://data.stortinget.no}id'').text til = el.find(''{http://data.stortinget.no}til'').text assert attribute in (fra, ses_id, til) print "id: %s fra: %s til: %s" % (ses_id, fra, til) cur.execute("""INSERT INTO sesjoner(fra, id, til) VALUES(%s, %s, %s)""" % (fra, ses_id, til))else: print "Could not load page: "+DOKreturn curdef get_emner(cur):DOK = "emner"try: page = urllib2.urlopen(SITE+DOK)except: print "Failed to fetch item "+DOKif not page: print "Could not load page:!! "+DOK returntree = ElementTree.parse(page)root = tree.getroot()top = list(root)[1]elements = list(top)for el in elements: navn = el.find(''{http://data.stortinget.no}navn'').text main_emne_id = el.find("{http://data.stortinget.no}id").text print "HOVED: %s %s" % (navn, main_emne_id) cur.execute("""INSERT INTO hovedemner(id, navn) VALUES(''%s'',''%s'');""" % (main_emne_id, navn)) if("true" in el.find("{http://data.stortinget.no}er_hovedemne").text): for uel in el.find("{http://data.stortinget.no}underemne_liste"): navn = uel.find("{http://data.stortinget.no}navn").text emne_id = uel.find("{http://data.stortinget.no}id").text print "UNDER: %s %s, horer til: %s" % (navn, emne_id, main_emne_id) cur.execute("""INSERT INTO underemner(id, navn, hovedemne_id) VALUES(''%s'', ''%s'', ''%s'');""" % (emne_id, navn, main_emne_id))return curdef get_fylker(cur):DOK = "fylker"try: page = urllib2.urlopen(SITE+DOK)except: print "Failed to fetch item "+DOKtree = ElementTree.parse(page)root = tree.getroot()top = list(root)[1]elements = list(top)for el in elements: fylke_id = el.find("{http://data.stortinget.no}id").text navn = el.find("{http://data.stortinget.no}navn").text print ("id: %s, navn: %s") % (fylke_id, navn) cur.execute("""INSERT INTO fylker(id, navn) VALUES(''%s'',''%s'');""" % (fylke_id, navn))return curdef get_partier(cur):DOK = "allepartier"try: page = urllib2.urlopen(SITE+DOK)except: print "Failed to fetch item "+DOKtree = ElementTree.parse(page)root = tree.getroot()top = list(root)[1]elements = list(top)for el in elements: parti_id = el.find("{http://data.stortinget.no}id").text navn = el.find("{http://data.stortinget.no}navn").text print ("id: %s, navn: %s") % (parti_id, navn) cur.execute("""INSERT INTO partier(id, navn) VALUES(''%s'',''%s'');""" % (parti_id, navn))return curdef get_komiteer(cur):DOK = "allekomiteer"try: page = urllib2.urlopen(SITE+DOK)except: print "Failed to fetch item "+DOKtree = ElementTree.parse(page)root = tree.getroot()top = list(root)[1]elements = list(top)for el in elements: kom_id = el.find("{http://data.stortinget.no}id").text navn = el.find("{http://data.stortinget.no}navn").text print "id: %s navn: %s" % (kom_id, navn) cur.execute("""INSERT INTO partier(id, navn) VALUES(''%s'',''%s'');""" % (kom_id, navn))return curdef get_representanter(cur):DOK = "dagensrepresentanter"try: page = urllib2.urlopen(SITE+DOK)except: print "Failed to fetch item "+DOKtree = ElementTree.parse(page)root = tree.getroot()top = list(root)[1]elements = list(top)for el in elements: doedsdato = el.find("{http://data.stortinget.no}doedsdato").text etternavn = el.find("{http://data.stortinget.no}etternavn").text foedselsdato = el.find("{http://data.stortinget.no}foedselsdato").text fornavn = el.find("{http://data.stortinget.no}fornavn").text repr_id = el.find("{http://data.stortinget.no}id").text kjoenn = el.find("{http://data.stortinget.no}kjoenn").text fylke = el.find("{http://data.stortinget.no}fylke/{http://data.stortinget.no}id").text parti = el.find("{http://data.stortinget.no}parti/{http://data.stortinget.no}id").text #komiteer = el.find("{http://data.stortinget.no}komiteer_liste/{http://data.stortinget.no}komite/{http://data.stortinget.no}id").text print "repr: %s, %s %s, parti: %s, fylke: %s" % (repr_id, fornavn, etternavn, parti, fylke) cur.execute("""INSERT INTO representanter(doedsdato, etternavn, foedselsdato, fornavn, id, kjoenn, fylke, parti) VALUES(''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'');""" % (doedsdato, etternavn, foedselsdato, fornavn, repr_id, kjoenn, fylke, parti))return curdef create_schema(cur):cur.execute("DROP TABLE IF EXISTS perioder")perioder = "CREATE TABLE perioder(fra varchar(255), id varchar(255), til varchar(255))"cur.execute("DROP TABLE IF EXISTS sesjoner")sesjoner = "CREATE TABLE sesjoner(fra varchar(255), id varchar(255), til varchar(255))"cur.execute("DROP TABLE IF EXISTS hovedemner")hovedemner = "CREATE TABLE hovedemner(id int, navn varchar(255));"cur.execute("DROP TABLE IF EXISTS underemner")underemner = "CREATE TABLE underemner(id int, navn varchar(255), hovedemne_id int)"cur.execute("DROP TABLE IF EXISTS fylker")fylker = "CREATE TABLE fylker(id varchar(255), navn varchar(255));"cur.execute("DROP TABLE IF EXISTS partier")partier = "CREATE TABLE partier(id varchar(255), navn varchar(255));"cur.execute("DROP TABLE IF EXISTS komiteer")komiteer = "CREATE TABLE komiteer(id varchar(255), navn varchar(255));"cur.execute("DROP TABLE IF EXISTS representanter")representanter = "CREATE TABLE representanter(doedsdato varchar(255), etternavn varchar(500), foedselsdato varchar(255), fornavn varchar(500), id varchar(255), kjoenn varchar(255), fylke varchar(255), parti varchar(255));"cur.execute(perioder)cur.execute(sesjoner)cur.execute(hovedemner)cur.execute(underemner)cur.execute(fylker)cur.execute(partier)cur.execute(komiteer)cur.execute(representanter)return curif __name__ == "__main__":conn = sqlite3.connect(DATA)cur = conn.cursor()cur = create_schema(cur) cur = get_perioder(cur)cur = get_sesjoner(cur)cur = get_emner(cur)cur = get_fylker(cur)cur = get_partier(cur)cur = get_komiteer(cur)cur = get_representanter(cur)conn.close
答案1
小编典典从我看来,您最后不会调用commit()。但是,这可能不会将任何数据写入数据库。从SQLITE3文档中:
Connection.commit()
此方法提交当前事务。如果不调用此方法,则从其他数据库连接中看不到自上次调用commit()以来所做的任何操作。如果您想知道为什么看不到已写入数据库的数据,请检查您是否没有忘记调用此方法。
Django Python POST方法未写入数据库
该表格无效。使用sub_type和state,您正在传递choicefield
,而模型需要一个charfield
您的表单必须为:
class SubscriptionForm(forms.ModelForm):
firstName = forms.CharField(
required=True,label="First Name",widget=forms.TextInput( attrs = {
'type':"text",'placeholder':"First name",'class':'form-control',# html input class
})
)
sub_type = forms.ChoiceField(
required=True,label="Subscription Type",choices= (
('Option 1','Choose'),('Option 2','Weekly $ Free'),...
),widget=forms.Select( attrs = {
'class':'your-css-class'
})
)
...
将表单传递到您的html
def weekly_get(request):
form = SubscriptionForm()
return render('weekly.html',{'form':form })
然后,您的html
<form method="post" action="/weekly/">
{% csrf_token %}
{% for field in form %}
<div>
<div>
{{field.label_tag}}
{{field}}
</div>
</div>
{% endfor %}
</form>
objective-c – 使用SQLite3将实时接收的许多值写入iPhone上的数据库
即使使用iPhone写入闪存,ram仍然具有更快的访问时间.
为了提高性能,我正在写入ram中的临时缓存,然后在某一点上将该缓存附加到数据库.
什么是标准实践/技术,知道将缓存写入数据库的频率?
我该怎么调整这个?
提前致谢!
解决方法
Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件
如何解决Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件?
我的代码首先从文件中读取以确保用户名和密码正确。之后,它会要求用户输入他们是否想要打开或关闭时钟。用户下班后,小时数应该保存到 CSV 文件中,但这并没有发生。我不能为此任务使用“导入 csv”。另外,这段代码对于时钟的开启和关闭看起来是否合适,或者我应该改变什么?谢谢
role = input("Choose role [E]mployee / [P]ayroll clerk [Default]:")
if role == "E" or role == "e":
print("Please enter your details to log in:")
print()
user_name1 = input("Please enter your username: ")
pass_word1 = input("Please enter your password: ")
file = open("user_pass.csv","r")
for row in file:
field = row.split(",")
user_name = field[0]
pass_word = field[1]
user_id = field[2]
# lastchar = len(pass_word) - 1
# pass_word = pass_word[0:lastchar]
if user_name1 == user_name and pass_word1 == pass_word:
print("Hello",user_name)
clock = input("Clock [I]n / Clock [O]ut:")
if clock == "I" or clock == "i":
date = input("Enter date: ")
time = input("Enter time: ")
print("Thanks for Clocking On.")
if clock == "O" or clock == "o":
date = input("Enter date: ")
time = input("Hours worked: ")
employee_data = open("CafeTestData.csv","a+")
data = employee_data.readlines()
for line in data:
if line.split(",")[0] == user_id:
newline = line.split(",")
if date == "Monday":
newline[7] = time
if date == "Tuesday":
newline[8] = time
if date == "Wednesday":
newline[9] = time
if date == "Thursday":
newline[10] = time
if date == "Friday":
newline[11] = time
if date == "Saturday":
newline[12] = time
if date == "Sunday":
newline[13] = time
data.remove(line)
replacement = ""
for item in newline:
replacement = replacement + item + ","
replacement = replacement[0:len(replacement) - 1]
replacement += "\n"
data.append(replacement)
employee_data.writelines(data)
employee_data.close()
else:
print("Incorrect. Please try again.")
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Python - 不会写入 csv 文件中的特定列,而是重新写入整行
如何解决Python - 不会写入 csv 文件中的特定列,而是重新写入整行?
以下代码用于确保员工可以从当天开始登录和打卡。当我尝试为员工打卡并输入所有小时数时,代码将其保存到文件中,但不在我想要的特定列中。它将通过替换整行并从头开始重写来保存它。但是,我希望它从第 7 列开始保存。
role = input("Choose role [E]mployee / [P]ayroll clerk [Default]:")
if role == "E" or role == "e":
logged_in = False
file = open("user_pass.csv",''r'')
user_pass_list = []
for row in file:
field = row.split(",")
user_name = field[0]
pass_word = field[1]
user_id = field[2]
user_pass_list.append([user_name,pass_word,user_id])
file.close()
while not logged_in:
print("Please enter your details to log in:\n")
user_name1 = input("Please enter your username: ")
pass_word1 = input("Please enter your password: ")
for item_num in range(0,len(user_pass_list)):
if user_name1 == user_pass_list[item_num][0]:
if pass_word1 == user_pass_list[item_num][1]:
logged_in = True
user_name = user_pass_list[item_num][0]
pass_word = user_pass_list[item_num][1]
user_id = user_pass_list[item_num][2]
if not logged_in:
print("Incorrect. Please try again.\n")
print("Hello",user_name)
clock = input("Clock [I]n / Clock [O]ut:")
if clock == "I" or clock == "i":
editfile = open("CafeTestData.csv","r")
completion = "false"
newfile = editfile.readlines()
for line in newfile:
if line.split(",")[0] == user_id:
while completion == "false":
print(line)
details = line.split(",")
mon_time = input("Please enter the hours worked on Monday: ")
if mon_time == "":
mon_time = details[7]
tue_time = input("Please enter the hours worked on Tuesday: ")
if tue_time == "":
tue_time = details[8]
wed_time = input("Please enter the hours worked on Wednesday: ")
if wed_time == "":
wed_time = details[9]
thu_time = input("Please enter the hours worked on Thursday: ")
if thu_time == "":
thu_time = details[10]
fri_time = input("Please enter the hours worked on Friday: ")
if fri_time == "":
fri_time = details[11]
sat_time = input("Please enter the hours worked on Saturday: ")
if sat_time == "":
sat_time = details[12]
sun_time = input("Please enter the hours worked on Sunder: ")
if sun_time == "":
sun_time = details[13]
print(
mon_time + " " + tue_time + " " + wed_time + " " + thu_time + " " + fri_time + " " + sat_time + " " + sun_time)
confirmation = input("Are you sure this data is correct? [Y] or [No]: ")
if confirmation == "Y" or confirmation == "y":
newline = mon_time + "," + tue_time + "," + wed_time + "," + thu_time + "," + fri_time + "," + sat_time + "," + sun_time + "\n"
newfile.remove(line)
newfile.append(newline)
completion = True
editfile.close()
editfile = open("CafeTestData.csv","w")
editfile.writelines(newfile)
editfile.close()
if confirmation == "N" or confirmation == "n":
completion = False
解决方法
我主要使用 Pandas 库,我绝对向你推荐它,你可能想尝试 a
而不是 w
,这是一个要附加的特殊字符:
open("CafeTestData.csv","a").write(text)
我们今天的关于SQLite和Python。值写入无错误,但程序终止后不会写入数据库和python数据写入数据库的分享已经告一段落,感谢您的关注,如果您想了解更多关于Django Python POST方法未写入数据库、objective-c – 使用SQLite3将实时接收的许多值写入iPhone上的数据库、Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件、Python - 不会写入 csv 文件中的特定列,而是重新写入整行的相关信息,请在本站查询。
本文标签: