python-3.x 如何循环遍历数组并构建SQL INSERT命令列表?

wtzytmuj  于 2023-02-10  发布在  Python
关注(0)|答案(2)|浏览(181)

我正在尝试使用数组中的数据构建一些SQL INSERT命令。
我的问题是,我不知道如何同时遍历所有这些对象。
下面是我的开始代码:
导入操作系统

raceValues = [
    "Human",
    "Elf",
    "Orc"
    ]
    
classValues = [
    "Fighter",
    "Mage",
    "Cleric"
    ]

alignmentValues = [
    "Good",
    "Neutral",
    "Evil"
    ]

for x in insertValues:
    
    
characterData = """INSERT INTO game.Characters(race, class, alignment) 
              VALUES '{raceValues}', '{classValues}', '{alignmentValues}' """

for command in characterData.splitlines():
    command = command.format(**data)  
    print(command)

因此,对于上面的内容,我尝试使用我定义的3个数组中的数据获取3个INSERT语句。
在Python 3中有没有办法做到这一点?
谢谢!

mklgxw1f

mklgxw1f1#

我想给你一个快速的答案,可惜我没有时间去测试它。我假设你希望列表中的值按顺序分组。所以,raceValues[0]与classValues[0]一起使用,以此类推。如果是这样的话,下面的代码就可以工作了:

raceValues = [
    "Human",
    "Elf",
    "Orc"
]

classValues = [
    "Fighter",
    "Mage",
    "Cleric"
]

alignmentValues = [
    "Good",
    "Neutral",
    "Evil"
]
for i in range(0,len(raceValues)):
    characterData = "INSERT INTO game.Characters(race, class, alignment)VALUES '%s', '%s', '%s'" \
                    % (raceValues[i], classValues[i], alignmentValues[i])
    print(characterData)

如果这抛出了一个错误,这是我正在使用的概念。

a = "something"
b = "what else"
c = "again"

output = "%s %s %s" % (a, b, c)

print(output)

我想这应该会让你朝着正确的方向前进,假设你的“"”格式是正确的。对不起,我不能测试它...在工作中吃一顿快餐。

ebdffaop

ebdffaop2#

如果所需的输出如下所示:

["INSERT INTO game.Characters(race, class, alignment) VALUES 'Human','Fighter''Good'", "INSERT INTO game.Characters(race, class, alignment) VALUES 'Elf','Mage''Neutral'", "INSERT INTO game.Characters(race, class, alignment) VALUES 'Orc','Cleric''Evil'"]

下面的代码应该适合您

sql_cmd_list = []
for rv, cv, av in zip (raceValues, classValues, alignmentValues):
    command = f"""INSERT INTO game.Characters(race, class, alignment) VALUES '{rv}','{cv}''{av}'"""
    sql_cmd_list.append(command)
print(sql_cmd_list)

相关问题