Python替换外部SQL查询中的引用值

2024-04-24 14:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的简单查询根据日期从表中进行选择:

select * from tbl where date = '2019-10-01'

简单查询是从同一服务器上的多个表中提取信息的更大查询的一部分。我在服务器上没有执行权限,因此无法安装存储过程来简化我的生活。相反,我将查询读入Python并尝试替换单引号字符串中的某些值,例如:

select * from tbl where date = '<InForceDate>'

我使用一个简单的Python函数(如下)替换为另一个值,比如2019-10-01,但是当我查看输出时,str.replace()函数并没有替换。然而,我尝试了一个这样的值,它不在引号中,它起了作用。我确信我遗漏了一些基本的东西,但是我还没有揭示为什么它在没有引号的情况下工作,而在引号的情况下却失败了

Python:

def generate_sql(sql_path, inforce_date):
    with open(pd_sql_path, 'r') as sql_file:
        sql_string = sql_file.read()
        sql_final = str.replace(sql_string, r'<InForceDate>', inforce_date)

    return(sql_final)

谁能给我指出正确的方向吗


Tags: path函数from服务器sqldate情况where