【发布时间】:2023-03-10 12:15:02
【问题描述】:
我已经创建了一个生成器,它使用字典创建一个列表 {customer: "customer", key_id: key_id, key: "key"}
我需要检索将每个键分配给我的 models.py 中的一个变量,以通过 sqlalchemy 将其发送到我的数据库 sqlite。
我在这方面真的很陌生,在谷歌搜索了几个小时后,我放弃了.. 因为它在一个 for 循环中,所以我的大脑告诉我我可以为每个循环提取一个新行。 就像您在我的代码中看到的那样,我尝试的最后一件事是将 mye dictlist 转换为 dict..
data_generert = keydata.generator(amount, customer)
#outputs a dictlist
#{'customer': 'hoppsann', 'key_id': 1, 'key': 'PsqnF6TBVQ'}
#{'customer': 'hoppsann', 'key_id': 2, 'key': '8ZE174eH5t'}
#{'customer': 'hoppsann', 'key_id': 3, 'key': 'g1gKESViEB'}
#{'customer': 'hoppsann', 'key_id': 4, 'key': 'd45Tbvq3mu'}
#{'customer': 'hoppsann', 'key_id': 5, 'key': 'lySs6q2ekG'}
#{'customer': 'hoppsann', 'key_id': 6, 'key': 'XKnup84vxv'}
for i in data_generert:
keys = Keys() # This is my model for sqalchemy
data_generert = {}
keys.customer = data_generert["customer"]
keys.key = data_generert["key"]
keys.key_id = data_generert["key_id"]
db.add(keys)
db.commit()
【问题讨论】:
-
除非我有误解,否则您的生成器每次迭代都会产生一个
dict。那么这意味着for i in data_generert每个i将是一个dict。所以你应该通过i(i["customer"],i["Key"],i["key_id"])访问值 -
为什么要在 for 循环的第 2 行将
data_generert重置为空字典? -
@MattDMo 是“我对此很陌生”的一部分并尝试了一些东西。这是我尝试将“i”转换为字典的最后一件事..
-
@HenryEcker:这很简单......谢谢!
-
@HenryEcker 你能把它作为答案提交吗?这样我就可以接受它并关闭问题:-)
标签: python sqlite sqlalchemy fastapi