使用Pandas生成CSV文件时的路径与语法问题求助
解决SQL语法错误并生成带日期时间的CSV文件
1. 修复SQL语句的语法问题
你原代码的语法错误来自字符串闭合不当,以及SQL中带单引号值的转义问题:
- 如果要查询的
CONFIG_NAME值是不带单引号的HA,正确的SQL字符串写法:HA_file_path_sql = '''select CONFIG_VALUE from CONFIGURATIONS where CONFIG_NAME = 'HA' ''' - 如果要查询的
CONFIG_NAME值本身包含单引号(比如值是'HA'),需要在SQL中用两个单引号转义单引号,写法如下:# 用三重单引号包裹SQL,内部单引号直接转义 HA_file_path_sql = '''select CONFIG_VALUE from CONFIGURATIONS where CONFIG_NAME = ''''HA'''' ''' # 或者用双引号包裹SQL,写法更直观 HA_file_path_sql = "select CONFIG_VALUE from CONFIGURATIONS where CONFIG_NAME = '''HA'''"
2. 生成带当前日期时间的文件路径
获取数据库返回的路径后,拆分路径并拼接日期时间后缀,最后保存CSV:
import pandas as pd import datetime import os # 假设已建立数据库连接conn(比如用sqlalchemy、psycopg2等) # 执行SQL获取存储的路径 path_df = pd.read_sql(HA_file_path_sql, conn) base_file_path = path_df['CONFIG_VALUE'].iloc[0] # 拆分路径的目录、文件名和扩展名 dir_path, file_fullname = os.path.split(base_file_path) file_name, file_ext = os.path.splitext(file_fullname) # 生成当前日期时间字符串(格式可自定义,比如YYYYMMDD_HHMMSS) current_datetime = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") # 拼接新的完整路径 new_file_path = os.path.join(dir_path, f"{file_name}_{current_datetime}{file_ext}") # 将数据保存为CSV # 假设你的数据集是data_df data_df.to_csv(new_file_path, index=False)
内容的提问来源于stack exchange,提问作者digital
相关产品推荐
相关产品推荐

