Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 使用循环更新sqlite行_Python_Sqlite - Fatal编程技术网

Python 使用循环更新sqlite行

Python 使用循环更新sqlite行,python,sqlite,Python,Sqlite,我试图根据某些条件更新Sqlite数据库中的行。 我的代码没有返回任何错误,但是我的sqlite行没有被更新 import requests from bs4 import BeautifulSoup import sqlite3 import datetime today = datetime.date.today() with sqlite3.connect("911.db",timeout=10) as connection: c = connection.cursor()

我试图根据某些条件更新Sqlite数据库中的行。 我的代码没有返回任何错误,但是我的sqlite行没有被更新

import requests
from bs4 import BeautifulSoup
import sqlite3
import datetime

today = datetime.date.today()

with sqlite3.connect("911.db",timeout=10) as connection:
    c = connection.cursor()
    #go and fetch all links in DB
    c.execute("SELECT url FROM Links")

#for each link I am going to see if it contains the div class "flashmessage warning"
for link in c:
    page = requests.get(link[0])
    soup = BeautifulSoup(page.content, 'html.parser')
    status = soup.find_all('div', class_='flashmessage warning')
    #check if list is not empty. If it is not then update value for update_row
    if not status:
        update_row = link[0]
        d = connection.cursor()
        d.execute("UPDATE Links SET status = 0 WHERE url == (?)", (update_row,) )
        d.execute("UPDATE Links SET last_seen = (?) WHERE url == (?)", (today, update_row) )
    #if list is not empty then update status with 1
    else:
        update_row = link[0]
        e = connection.cursor()
        e.execute("UPDATE Links SET status = 1 WHERE url == (?)", (update_row,) )
我不得不使用

with sqlite3.connect("911.db",timeout=10, isolation_level=None) as connection:

添加隔离\u level=None解决了建议的问题

在更新查询后,您忘记了执行提交您不能修改正在用光标迭代的数据。