【问题标题】:Creating a dynamic key within list comprehension在列表理解中创建动态键
【发布时间】:2021-03-20 22:13:00
【问题描述】:

我正在使用 sqlalchemy(core) 从炼金术表中提取主键列。所以本质上我最初是这样做的:

coupon_tbl = db.Table( “issued_coupon”、元数据、autoload=True、autoload_with=engine、schema="pricer"

现在为了提取主键列,我像这样遍历相应的对象:

pk_tuple = []
for x in coupon_tbl.primary_key.columns._all_columns:

    pk_tuple.append(x.name)

pk_tuple = tuple(pk_tuple)

现在我想做的是创建一个字典,其中包含一个键元组作为字典键,如下所示:

对于批处理记录列表中的记录:

    batchrecorddict[(rec["user_id"], rec["timestamp"])] = rec

但是我如何动态地做到这一点?我想要这样的东西:

batchrecorddict["可能是元组的扩展?"] = rec.因此,如果主键实际上有 3 列,那么分配将如下所示:

batchrecorddict[(rec["user_id"], rec["timestamp"], rec["3rd column of key])] = rec etc...

这个可以吗?

【问题讨论】:

    标签: list dictionary dynamic key list-comprehension


    【解决方案1】:

    我想通了,其实很简单:

    创建这个函数:

    def renderPKtuple(rec, pkcolumn): tmplist = []

    for x in pkcolumn:
        tmplist.append(rec[x])
    
    return tuple(tmplist)
    

    然后在循环中这样调用它:

    对于批处理记录列表中的记录:

        batchrecorddict[renderPKtuple(rec, pk_tuple)] = rec
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2020-05-30
      • 2023-03-31
      • 1970-01-01
      • 2021-04-07
      • 2021-04-30
      • 2020-08-31
      相关资源
      最近更新 更多