【发布时间】:2021-10-31 07:30:08
【问题描述】:
我有一个来自 Django 模型的列表,它可以包含来自模型的任何键的 dict_items。 例如。我可以使用函数从同一模型中获得具有“国家”属性或“名称”属性的列表。
x = dict_items([(<country: US>, 1), (<country: UK>, 1), (<country: Australia>, 2), (<country: Canada>, 1)])
x = dict_items([(<name: John>, 10), (<name: Jane>, 15), (<name: Smith>, 20), (<name: Jess>, 1)])
现在,我正在尝试构建另一个函数来清理密钥,基本上是 (<country: US>, 1) 到 {'key': 'US', 'val': 1}
def pctTop5 (dict, keyy):
pList = []
for (key,value) in dict:
pdict = {}
pdict['key'] = key.keyy
pdict['val'] = value
pList.append(pdict)
df = pandas.DataFrame(pList)
return df
但是,我收到以下错误:
'countryModel' object has no attribute 'keyy'
这里的'countryModel'对象是django模型,它显然没有一个叫做'keyy'的属性。
传递变量以查询 dict 键的正确方法是什么?我需要将变量作为键传递,以重用该函数是不同的视图。
我尝试搜索,但大多数答案是使用变量创建字典列表,但找不到任何要查询的。
TIA
【问题讨论】:
-
你能分享你的
countryModel吗? -
class countryModel(models.Model): country = models.CharField(max_length=100)continent = models.ForeignKey(continent, on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ('country',) def __str__(self): return self.country
-
那么
dict参数长什么样,keyy的值是多少? -
countryModel 和 nameModel 在另一个模型中被用作外键...... keyy 可以是国家或名称......在这种情况下 countryModel.country
-
您能否提供示例输入和预期输出。请edit提问。
标签: python django dictionary