首页 > 解决方案 > 在 python 的两个表中插入数据时出错

问题描述

我想使用相同的数据库将数据插入到两个不同的表中,一个是 for 循环,另一个是 for 循环之外,但是在将数据插入一个表后,我得到了错误。

我的代码

with connection ...
     for loop ....

            sql = "INSERT INTO user_repo (user_id, github_id, repo_id, user_connection, repo_name, contributors, total_commits, commit_by_user, created_date, last_commit) VALUES (  % s, % s, % s, % s, % s, % s, % s, % s, % s, % s)"
            cursor.execute(sql, (
                        initial_details['id'],               
                        username,
                        all_repo_data[(repo['name'])]['id'] ,
                        all_repo_data[(repo['name'])]['owner'] ,
                        all_repo_data[(repo['name'])]['name'],
                        all_repo_data[(repo['name'])]['contributors'],
                        all_repo_data[(repo['name'])]['total_commits'],
                        all_repo_data[(repo['name'])]['commit_by_user'],
                        all_repo_data[(repo['name'])]['created_at'] ,
                        all_repo_data[(repo['name'])]['updated_at'],
            ))
       sql = "INSERT INTO initialdetails (github_id, name, email, user_id, location, followers, following,total_commits,total_stars,total_repos) VALUES ( % s, % s, % s, % s, % s, % s, % s, % s, % s, % s)"
       cursor.execute(sql, (initial_details['username'],
                     initial_details['name'],
                     initial_details['email'],
                     initial_details['id'],
                     initial_details['location'],
                     initial_details['followers'],
                     initial_details['following'],
                     Total_commits_of_user,
                     total_stars,
                     total_repos,))
      connection.commit()


我得到的错误是

Traceback (most recent call last):
  File "d:\I8Labs\githubData.py", line 210, in <module>
    cursor.execute(sql, (initial_details['username'],
  File "C:\Python39\lib\site-packages\pymysql\cursors.py", line 143, in execute
    while self.nextset():
  File "C:\Python39\lib\site-packages\pymysql\cursors.py", line 96, in nextset
    return self._nextset(False)
  File "C:\Python39\lib\site-packages\pymysql\cursors.py", line 83, in _nextset
    conn = self._get_db()
  File "C:\Python39\lib\site-packages\pymysql\cursors.py", line 65, in _get_db
    raise err.ProgrammingError("Cursor closed")
pymysql.err.ProgrammingError: Cursor closed

标签: pythonmysqlpymysql

解决方案


推荐阅读