python - 使用 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 读取文件内容并填补空白?
解决方案
这取决于您如何定义表 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))
推荐阅读
- python - Python - 使用 if 语句,+ while 条件 | 打印整数,有数字时中断
- web-applications - 访问部署在 websphere 8.5.5 上的 Struts2 Web 应用程序 War 会引发错误 404: SRVE0190E: File not found
- java - 处理嵌套类的整个类型名称
- python - 从 Jupyter Notebook 抓取输出到 CSV
- windows-server - 在 Windows Server 上,新 GPO 控制的网络共享的权限默认为只读
- java - 我正在尝试删除包含某个字符的代码行,但我不知道该怎么做
- amazon-web-services - 仅允许向特定用户列出 S3 存储桶顶级列表
- python - 将 concurrent.futures.ThreadPoolExecuter() 与 kwargs 一起使用
- c++ - 错误创建新的qt应用程序时无法打开包含文件ui_HelloWorldGUI.h(GUI)
- image - Docker 镜像向上兼容