为SQL多行inpu创建带有随机输入的列表

2024-10-01 17:22:39 发布

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

我想通过编写一个游戏(基于文本)来学习Python和SQLite。我想将数据插入SQLite数据库。我为玩家制作了一个标签

c.execute('''CREATE TABLE player(ID_Player INTEGER PRIMARY KEY, Age INT, Name VARCHAR, Position VARCHAR, Skill INT, Value INT)''')

现在我想为这个表插入n个条目。对于每一列,我想应用一个函数来确定应该输入什么。你知道吗

  • 年龄:randint(18,33))
  • 姓名:姓名。获取全名(gender='male')
  • 职位:随机选择(职位)
  • 技能:randint(50100)
  • 价值:兰迪特(5000005000000)

如果我手动创建列表,如下所示

multi_lines =[ (25,'Playern Name1','TW',95,45000000),
               (26,'Playern Name2','ST',75,3500000),
               (32,'Playern Name3','IV',85,25000000),]

然后我就可以执行它们,并使用函数c.executemany('INSERT INTO player(age, name, position, skill, value) VALUES (?,?,?,?,?)', multi_lines)将它们插入到我的数据库中 我试图确定输入omc.executemany,但这不起作用。你知道吗

c.executemany('INSERT INTO player(Age, Name, Position, Skill, Value)  VALUES (?,?,?,?,?)',\
               (randint(18,33),names.get_full_name(gender='male'),random.choice(positions),randint(50,100), randint(500000,50000000) ))

接下来,我试着列出许多清单,并将它们放入一个空清单中:

lst = []
positions = ['TW', 'IV', 'MF', 'ST']

for i in range(2):
    lst.append(randint(18,33))
    lst.append(names.get_full_name(gender='male'))
    lst.append(random.choice(positions))
    lst.append(randint(50,100))
    lst.append(randint(500000,5000000))

print  lst

它的输出是[19, u'Ricardo Moore', 'ST', 68, 3298618, 26, u'Carl Cole', 'ST', 92, 3380302],但是,我想创建类似于multi_lines的输出。有什么合乎逻辑的方法可以做到这一点?或者更具体地说,如何创建另一个列表中的列表?你知道吗

main_list = [
    (list_1),
    (list_2),
    (list_n)
]

Tags: name列表gendermultimalelistintplayer
1条回答
网友
1楼 · 发布于 2024-10-01 17:22:39

您需要executemany()列表

positions = ['TW', 'IV', 'MF', 'ST']
multi_lines = [[
        randint(18,33),
        names.get_full_name(gender='male'),
        random.choice(positions),
        randint(50,100),
        randint(500000,5000000)
    ]
    for i in range(2)
]

c.executemany('INSERT INTO player(Age, Name, Position, Skill, Value)  VALUES (?,?,?,?,?)', multi_lines)

相关问题 更多 >

    热门问题