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
相关产品推荐
相关产品推荐

