【问题标题】:Database in python - index issuepython 中的数据库 - 索引问题
【发布时间】:2022-11-23 02:47:20
【问题描述】:
for page in range(1, pages + 1):
def append_organizator(organizator, organizatorzy=[]):
    organizatorzy.append(organizator)
    for i in organizatorzy:
        try:
            query = "INSERT INTO stypendia (organizator) values(%s)"
            values = []
            values.append(organizatorzy.pop())
            cursor.execute(query, values)
            conn.commit()
        except:
            pass

def append_type(rodzaj, rodzaje=[]):
    rodzaje.append(rodzaj)
    for i in rodzaje:
        try:
            query = "INSERT INTO stypendia (rodzaj) values(%s)"
            values = []
            values.append(rodzaje.pop())
            cursor.execute(query, values)
            conn.commit()
        except:
            pass

这些是将从网站废弃的数据插入数据库的 2 个函数

该程序正在遍历站点上的所有可用页面。报废的数据被插入到数据库中。

正如您在屏幕截图中看到的那样,标题插入了 7 次(页数),然后组织者再次插入了 7 次,依此类推... 我怎样才能解决这个问题并使所有内容都在相同的索引database ss

【问题讨论】:

  • 您正在修改列表organizatorzy/rodzaje,同时迭代(使用.pop()),这不是一个好的做法。此外,您将可变对象 [] 作为默认参数值,这也是不好的做法。
  • @AndrejKesely 那么我应该如何在不弹出的情况下将单个项目添加到列表中呢?

标签: python mysql database beautifulsoup


【解决方案1】:

您需要组合 insert 操作 - 每次插入都会创建一个新行。您还应该只使用不带数组的参数,实际上不需要它们。

此示例仅处理两个参数(与上面的代码相同)。根据需要添加额外的参数并调整插入语句

def append(organizator: str, rodzaj: str):
    try:
        query = "INSERT INTO stypendia (organizator, rodzaj) values(%s, %s)"
        values = (organizator, rodzaj)
        cursor.execute(query, values)
        conn.commit()
    except:
        pass

【讨论】:

    【解决方案2】:
    organizator = doc.find_all(class_='organizator-title')
        for i in organizator:
            x = append_organizator(i.text.strip().replace('\n', '').replace('\r', ''))
    
        rodzaj = doc.find_all('div', class_='fleft', string="Rodzaj:")
        for i in rodzaj:
            x = append_type(i.find_next().text.strip().replace('\n', '').replace('\r', ''))
    

    如您所见,我正在遍历网络上找到的所有元素并将它们添加到列表中。我怎样才能修改你的代码来运行这个项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 2018-11-21
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      相关资源
      最近更新 更多