首页 > 解决方案 > 使用 Python 将未知的文本文件数据存储到 MySQL

问题描述

要更深入地探讨这样的问题:

如何使用python将文本文件存储到MySQL数据库中

在我的 Python 脚本读取文件之前,我不确定它会是什么数据。所以我得到的错误是:

MySQLdb._exceptions.ProgrammingError: not enough arguments for format string

这是我的代码:

file = open('./ftp_files/ReadMe.txt', 'r')
file_content = file.read()
for line in file_content:
fields = line.split('|')
file.close()

query = "INSERT INTO ICLN_LOADER_JOB_LOG (JOB_ID, LOADER_HOST_NAME, MYSQL_HOST_NAME) VALUES ('%s', '%s', '%s')"

cursor.execute(query, (file_content,))

我知道通常你会在%s......之后获得数据值,但是如果我不知道这些值是什么,我该如何设置它以便 Python 读取文件内容并填补空白?

标签: pythonmysql

解决方案


这取决于您如何定义表 ICLN_LOADER_JOB_LOG

IF LOADER_HOST_NAME 和 MYSQL_HOST_NAME 允许 NULL 作为值。你可以这样做

query = """INSERT INTO ICLN_LOADER_JOB_LOG (JOB_ID, LOADER_HOST_NAME, MYSQL_HOST_NAME) 
         VALUES ('%s', NULL, NULL)"""

cursor.execute(query, (file_content,))

您也可以使用其他标记而不是 NULL 的值,列没有值

喜欢

query = """INSERT INTO ICLN_LOADER_JOB_LOG (JOB_ID, LOADER_HOST_NAME, MYSQL_HOST_NAME) 
         VALUES ('%s', '%s', '%s')"""
lhn = '';
myhn = '';
cursor.execute(query, (file_content,lhn,mysn))

推荐阅读