GVKun编程网logo

SQLite和Python。值写入无错误,但程序终止后不会写入数据库(python数据写入数据库)

28

在这篇文章中,我们将带领您了解SQLite和Python。值写入无错误,但程序终止后不会写入数据库的全貌,包括python数据写入数据库的相关情况。同时,我们还将为您介绍有关DjangoPythonP

在这篇文章中,我们将带领您了解SQLite和Python。值写入无错误,但程序终止后不会写入数据库的全貌,包括python数据写入数据库的相关情况。同时,我们还将为您介绍有关Django Python POST方法未写入数据库、objective-c – 使用SQLite3将实时接收的许多值写入iPhone上的数据库、Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件、Python - 不会写入 csv 文件中的特定列,而是重新写入整行的知识,以帮助您更好地理解这个主题。

本文目录一览:

SQLite和Python。值写入无错误,但程序终止后不会写入数据库(python数据写入数据库)

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方法未写入数据库

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上的数据库

objective-c – 使用SQLite3将实时接收的许多值写入iPhone上的数据库

我正在写一个iOS应用程序,我有很多记录,我正在写一个数据库.
即使使用iPhone写入闪存,ram仍然具有更快的访问时间.
为了提高性能,我正在写入ram中的临时缓存,然后在某一点上将该缓存附加到数据库.

什么是标准实践/技术,知道将缓存写入数据库的频率?
我该怎么调整这个?

提前致谢!

解决方法

我有一个类似的问题,需要刷新到服务器而不是本地数据库.我使用工具来查找其中一个缓存对象的“典型”大小(我的相当均匀)并且我只维护缓存中有多少个,当我越过阈值时,我将缓存清空到服务器.然后我了解了NSCache有很多相同的行为.我研究了动态确定缓存中每个对象大小的方法,但发现它既乏味又脆弱. 基本上,我认为你需要根据用仪器收集的使用特征来决定你的应用程序有什么意义.我发现2011年WWDC会议“第318节 – iOS性能深度”中的视频对类似情况非常有帮助.你可以在itunes U上找到它.

Python - 不会为员工打开或关闭时钟,也不会写入 csv 文件

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 文件中的特定列,而是重新写入整行

如何解决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 文件中的特定列,而是重新写入整行的相关信息,请在本站查询。

本文标签: