gpt4 book ai didi

Python通过for循环将字符串参数传递到sql执行中

转载 作者:行者123 更新时间:2023-12-01 04:49:53 25 4
gpt4 key购买 nike

试图弄清楚如何将循环中的每个字符串传递到 SQL 中以循环访问每个国家/地区并创建特定于每个国家/地区的 excel 文件(5 个 excel 文件,每个文件都有自己的特定国家/地区数据)。我发现执行 .join 和 IN() 语句的代码有效,但将所有 5 个国家/地区放入所有 5 个文件中。

代码:

import CX_Oracle
Import xlwt
country_list = ['PERU','GUATEMALA','BAHAMAS','BARBADOS']

for country in country_list:
SQL = "SELECT * from TABLE WHERE COUNTRY = %s" % country
cursor = con.cursor()
cursor.execute(SQL)
book = xlwt.Workbook()
sheet1 = book.add_sheet('Summary')
for i, row in enumerate(cursor):
for j, col in enumerate(row):
sheet1.write(i+1,j,col) #Starts pasting the data at row 2
book.save('Output_' + country + '.xls')

Error "PERU" Invalid character.

最佳答案

比包含引号更好的是避免显式字符串格式。相反,将参数作为执行中的第二个参数传递。 Psycopg2 将为您处理。这将使您避免潜在的代码注入(inject)和漏掉引号之类的错误

cursor.execute("SELECT * from TABLE WHERE COUNTRY = %s" , ('USA',))

http://initd.org/psycopg/docs/cursor.html#cursor.execute

关于Python通过for循环将字符串参数传递到sql执行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28695934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com