重生之兔头战士 2024-02-28 20:47 采纳率: 0%
浏览 6

爬虫csv文件内容与数据库内容不对应应该怎么解决?

类似于这样,directors在数据库中没有,其他的也有错位乱位情况

img

img

这是python中sql的代码


try:
    conn =connect(host='localhost',user='root',password='123456',database='dbm',port=3306,charset='utf8mb4')
    sql = ''' 
                    create table movie(
                        id int primary key auto_increment,
                        directors varchar(255),
                        rate varchar(255),
                        title varchar(255),
                        casts varchar(255),
                        cover varchar(255),
                        detailLink varchar(255),
                        year varchar(255),
                        types varchar(255),
                        country varchar(255),
                        lang varchar(255),
                        time varchar(255),
                        moveiTime varchar(2555),
                        comment_len varchar(2555),
                        starts varchar(25555),
                        summary varchar(2555),
                        comments text,
                        imgList varchar(2555),
                        movieUrl varchar(255)
                    )          
   '''
    cursor = conn.cursor()
    cursor.execute(sql)
    conn.commit() 
except:
    pass

  • 写回答

2条回答 默认 最新

  • 关注

    重生之兔头战士 晚上好🌙🌙🌙
    本答案参考通义千问

    看起来你正在尝试将CSV文件中的数据插入到数据库中,但是遇到了一些问题,比如directors字段在数据库中不存在,以及其他字段可能存在错位或乱位。为了解决这个问题,你可以按照以下步骤操作:

    1. 检查数据格式

      • 确保CSV文件的数据格式与SQL创建表的结构匹配,特别是字段名和数据类型。
      • 检查CSV文件中是否有误输入或者格式错误,比如逗号、引号、换行符等可能影响解析的内容。
    2. 处理缺失字段

      • 如果directors字段不是必需的,可以考虑在SQL插入时判断该字段是否存在,如果不存在则跳过或设置默认值(如NULL)。
    3. 处理乱序或错位

      • 对于其他字段可能出现的错位,可以使用Python的pandas库来读取CSV,然后按正确的顺序和字段名重新组织数据,再插入数据库。
      import pandas as pd
      
      # 读取CSV文件
      df = pd.read_csv('your_file.csv')
      
      # 确定正确的列顺序
      correct_columns = ['id', 'rate', 'title', 'casts', 'cover', 'detailLink', 'year', 'types', 'country', 'lang', 'time', 'moveiTime', 'comment_len', 'starts', 'summary', 'comments', 'imgList', 'movieUrl']
      
      # 按照正确顺序重新排列DataFrame
      df_sorted = df[correct_columns]
      
      # 再次尝试将排序后的数据插入数据库
      for _, row in df_sorted.iterrows():
          # 使用连接和cursor对象执行SQL插入
          query = f"INSERT INTO movie ({', '.join(row.index)}) VALUES ({', '.join(f"'{val}'" for val in row.values)})"
          try:
              cursor.execute(query)
              conn.commit()
          except Exception as e:
              print(f"Error inserting row: {row}, Error: {str(e)}")
      
    4. 处理异常处理

      • 在执行SQL时,确保有适当的错误处理,以防止程序中断。
      • 使用try-except块捕获可能的数据库连接或执行错误,并记录或处理这些错误。
    5. 验证数据一致性

      • 插入数据后,可以在数据库中查询新插入的数据,确认是否与CSV文件一致。

    通过以上步骤,你应该能更好地处理CSV文件与数据库之间的数据不对应问题。记得在实际操作中替换数据库连接参数和文件路径。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月28日

悬赏问题

  • ¥15 win2012 iscsi ipsec
  • ¥15 封装的 matplotlib animation 不显示图像
  • ¥15 python摄像头画面无法显示
  • ¥15 关于#3d#的问题:d标定算法(语言-python)
  • ¥15 cve,cnnvd漏洞扫描工具推荐
  • ¥15 图像超分real-esrgan网络自己训练模型遇到问题
  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)