如何在Python中修剪SQL查询输出并提取目标字符串?
解决SQL查询结果提取问题
看起来你已经成功执行了SQL查询,但返回的结果是带键的字典列表,而你需要直接拿到里面的字符串值。这里有两种实用方法可以帮你获取期望的输出:
方法1:给SQL结果列加别名(推荐)
给查询里的计算列设置一个简洁的别名,后续取值会更直观,避免用长长的函数语句作为键:
select trim(CONCAT_WS('|','Master Job Name','Seq','TableName','Source File Name Lnd','landingdfname','TargetPath','query1','Execution Sequence')) as csv_header FROM DUAL
对应的Python代码修改如下,通过别名直接取值:
with db.cursor() as cur: query_meta = ("select trim(CONCAT_WS('|','Master Job Name','Seq','TableName','Source File Name Lnd','landingdfname','TargetPath','query1','Execution Sequence')) as csv_header FROM DUAL") cur.execute(query_meta) res = cur.fetchall() # 提取目标结果 desired_output = res[0]['csv_header'] print(desired_output)
方法2:直接从返回字典中提取值
如果不想修改SQL语句,也可以直接从返回的字典里取出唯一值(因为你的查询只返回一行一列):
with db.cursor() as cur: query_meta = ("select trim(CONCAT_WS('|','Master Job Name','Seq','TableName','Source File Name Lnd','landingdfname','TargetPath','query1','Execution Sequence')) FROM DUAL") cur.execute(query_meta) res = cur.fetchall() # 提取字典中的唯一值 desired_output = next(iter(res[0].values())) # 也可以用这种写法:desired_output = res[0][list(res[0].keys())[0]] print(desired_output)
两种方法最终都会输出你想要的内容:Master Job Name|Seq|TableName|Source File Name Lnd|landingdfname|TargetPath|query1|Execution Sequence
内容的提问来源于stack exchange,提问作者jay
相关产品推荐
相关产品推荐

