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)
在 Python 3.4 中加载和读取具有多个 JSON 对象的 JSON 文件