【问题标题】:How do i get a value from a key in the first element in a list with dictionaries python?如何使用字典 python 从列表中第一个元素的键中获取值?
【发布时间】: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。所以你应该通过ii["customer"]i["Key"]i["key_id"])访问值
  • 为什么要在 for 循环的第 2 行将 data_generert 重置为空字典?
  • @MattDMo 是“我对此很陌生”的一部分并尝试了一些东西。这是我尝试将“i”转换为字典的最后一件事..
  • @HenryEcker:这很简单......谢谢!
  • @HenryEcker 你能把它作为答案提交吗?这样我就可以接受它并关闭问题:-)

标签: python sqlite sqlalchemy fastapi


【解决方案1】:

除非我有误解,否则您的生成器每次迭代都会产生一个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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2021-06-15
    • 2023-03-08
    • 2017-06-04
    相关资源
    最近更新 更多