我如何从带有字典 python 的列表中第一个元素的键中获取值?

How do i get a value from a key in the first element in a list with dictionaries python?

我创建了一个生成器,它创建了一个列表,其中包含字典 {customer: "customer", key_id: key_id, key: "key"}

我需要检索将每个键分配给我 models.py 中的一个变量,以便通过 sqlalchemy 将它发送到我的数据库 sqlite。

我真的很陌生,在谷歌上搜索了几个小时后我放弃了.. 因为它在一个 for 循环中,我的大脑告诉我我可以为每个循环提取一个新行。 正如您在我的代码中看到的那样,我尝试的最后一件事是将我的字典列表转换为字典..

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。那么这意味着对于 data_generert 中的 i 每个 i 将是一个 dict.

因此您应该通过 i.

访问值

我建议将变量名称更改为更易于理解的名称,以明确每个值都是 dict 而不是 i 通常表示的标准 int 迭代器值。

data_generert = keydata.generator(amount, customer)

for d in data_generert:
    keys = Keys()
    keys.customer = d["customer"]
    keys.key = d["key"]
    keys.key_id = d["key_id"]

    db.add(keys)
    db.commit()