【发布时间】:2012-11-28 21:28:38
【问题描述】:
我的 Python 代码从数据库中获取数据,如下所示:
for result in request.user.results.all():
data.append(dict([(str(word.type.type), str(word.word)) for word in result.word.all()
data.append(dict([(season, ResultForm.CHOICES[r.season][1])]))
将“数据”显示为:
[{'color': 'blue', 'kind': 'pencil', 'rating': 'high'}, {'color': 'red', 'kind': 'truck', 'rating': 'low'}, {'season': 'winter'}, {'season': 'spring'}]
如何调整代码,使数据输出如下所示:
[{'color': 'blue', 'kind': 'pencil', 'rating': 'high', 'season': 'winter'}, {'color': 'red', 'kind': 'truck', 'rating': 'low', 'season': 'spring'}]
不只是添加最后一个对象,而是将它添加到每个元素中。
【问题讨论】:
-
我不知道。您如何知道要将新数据添加到哪个字典?
-
在我看来您想将季节键/值合并到结果字典中,但是您怎么知道
result.word.all()的排序与score相同?你的第二个data.append()似乎没有被锁定到循环中的任何内容,除非r.season应该是result.season。即使如此,您提供的代码片段也没有说明为什么score应该以任何方式与您的结果查询集相关联。 -
对不起,分数应该是赛季。
-
为什么不把它写成一个干净的、逐步的过程呢?这样,你现在就可以修复它,甚至明年再理解它。尽管这些单线支架很好,但在许多情况下它们并不能编写出良好的可维护代码。
标签: python django arrays dictionary