【问题标题】:MySQL: Importing CSV file from scriptMySQL:从脚本导入 CSV 文件
【发布时间】:2016-01-30 23:54:20
【问题描述】:

我有脚本来解析一些数据并将数据保存到 Output.csv(Output.csv 位于服务器 (/tmp) 上)然后我想将此 Output.csv 导入到 MySQL 现有表中。

        with open("/tmp/Output.csv", "w",0600) as text_file:
          text_file.write(csv)
          mydbs.connect()     
          mydbs.sqlcmd("""LOAD DATA LOCAL INFILE '/tmp/Output.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ;""")
          text_file.close()
          os.remove("/tmp/Output.csv")

SQL 查询以某种方式工作,例如,如果我将“my_table”更改为“my_tableasd”,则会出现错误:

ProgrammingError: (1146, "表 'dbs.my_tableasd' 不存在")。

我也可以做任何类型的选择,但这个导入根本不起作用。我没有收到任何错误或警告..什么都没有,但是当我查看 PHPmyAdmin 时,没有导入任何数据。

我尝试通过 PhpMyAdmin 导入 Output.csv,它可以正常工作..

我也尝试将 local-infile=1 设置为 my.cnf ([mysql], [mysqld]) 但没有任何反应

非常感谢

【问题讨论】:

    标签: python mysql csv


    【解决方案1】:

    在尝试导入之前关闭文件。

    【讨论】:

      【解决方案2】:

      单独的写入和处理:

      with open("/tmp/Output.csv", "w",0600) as text_file:
          text_file.write(csv)
      
      mydbs.connect()     
      mydbs.sqlcmd("""
          LOAD DATA LOCAL INFILE '/tmp/Output.csv'
          INTO TABLE my_table
          FIELDS TERMINATED BY ','
          LINES TERMINATED BY '\n' ;
      """)
      
      os.remove("/tmp/Output.csv")
      

      【讨论】:

        【解决方案3】:

        问题解决了,我尝试关闭数据库,它可以工作。这很有趣,因为我在整个项目中从不这样做,而且我一直在使用 dbs,但也许这个导入需要提交或类似的东西

        mydbs.close()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-07-13
          • 1970-01-01
          • 2020-07-26
          • 2016-01-23
          • 2013-03-13
          • 2016-02-26
          • 1970-01-01
          相关资源
          最近更新 更多