Python Mysql 在文件中加载数据

Posted

技术标签:

【中文标题】Python Mysql 在文件中加载数据【英文标题】:Python Mysql Load data in file 【发布时间】:2014-01-17 15:02:39 【问题描述】:

我有一个包含这样列的数据库

Col1 Col2 Col3 Col4 Col5

我有两个 csv 文件,其中包含这样的数据

File-1
Column1, Column2, Column4, Column5
1,2,4,5
1,2,4,5
1,2,4,5
1,2,4,5
1,2,4,5

File-2
Column1, Column3, Column5
1,3,5
1,3,5
1,3,5
1,3,5
1,3,5
1,3,5

请告诉我使用 infile 命令加载数据以在表的相应列中加载文件 1 和文件 2 数据。即来自 file1 的 column4 来自 .csv 应该进入表的 COl4。

使用此命令,Column4 进入 Col3,Column5 进入 Col4。

import mysqldb
import os
import string
import warnings

print "File Loader Started : QT"
output_path="F:/TestData_SD/QT_Files/"

# Open database connection
db = MySQLdb.connect (host="localhost",port=3307,user="root",\
                      passwd="gamma123",db="db_schema")

sql = """LOAD DATA LOCAL INFILE ''
INTO TABLE struct_pqrst
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\\r\\n'
IGNORE 1 LINES;;"""


l = os.listdir(output_path)
for file_name in l:
    if file_name.endswith('.csv'):

        try:
            cursor = db.cursor()
            cursor.execute(sql.format(output_path+file_name))
            db.commit()
            print "Loading file:"+file_name
        except Exception:
            print "Exception"
            # Rollback in case there is any error
            db.rollback()

# disconnect from server
db.close()
print "File Loader Ended : QT"

请帮忙

【问题讨论】:

我认为您需要这样的解决方案,***.com/questions/4202564/… 亲爱的 Kay,我需要更多帮助SQL 语法错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在第 7 行“-Mast_Height_Diff._TLV, RunDate, SourceFileName)”附近使用的正确语法“)”。你能告诉我如何解决这个问题吗? 用`包裹列或用_替换-。告诉我! 是的,` 技巧成功了。非常感谢 【参考方案1】:

在第二个文件中,您可以定义列。

LOAD DATA LOCAL INFILE '' 
INTO TABLE struct_pqrst (Column1, Column3, Column5)
FIELDS TERMINTED BY ',' 
LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

查看我发布的链接。

参考:How to insert selected columns from a CSV file to a MySQL database using LOAD DATA INFILE

【讨论】:

以上是关于Python Mysql 在文件中加载数据的主要内容,如果未能解决你的问题,请参考以下文章

我想从我的 CSV 文件中加载特定的列数据(MySQL 8.0)

在mysql错误中加载数据infile

在 Python 3.4 中加载和读取具有多个 JSON 对象的 JSON 文件

如何减少在 python 中加载泡菜文件或将泡菜文件映射到磁盘的时间

每次在 MySQL DB 中加载 R 输出

使用python在spark中加载pcap文件