You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何使用变量作为键查询Django模型属性并处理dict_items

问题解决方法

错误原因

你使用点语法key.keyy获取属性时,Python会将keyy识别为固定的属性名称,而非你传入的变量对应的值,因此会报找不到keyy属性的错误。

解决方案

使用Python内置的getattr()函数动态获取对象属性,该函数支持传入字符串格式的属性名来动态取值。同时注意不要使用dict作为参数名,它是Python内置类型的保留关键字,会覆盖原生字典功能。

修正后的代码如下:

import pandas

def pctTop5(items, keyy):
    pList = []
    for (key, value) in items:
        pdict = {}
        # 第三个参数为可选默认值,避免属性不存在时报错
        pdict['key'] = getattr(key, keyy, '未知')
        pdict['val'] = value
        pList.append(pdict)
    df = pandas.DataFrame(pList)
    return df

调用示例

  • 要取模型的country属性,调用时写pctTop5(x, 'country')
  • 要取模型的name属性,调用时写pctTop5(x, 'name')

内容的提问来源于stack exchange,提问作者chhibbz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:24:02