我使用iteritems()迭代字典,在Django中创建对象。但是,我发现创建的对象的数量与dictionary对象的数量不同。在
进一步研究后,我发现dictionary的iteritems()方法只返回197个元组,而字典本身包含269个项。在
data = {...}
print len(data) #output: 269
for k, v in data.iteritems():
Category.objects.create(name=k).save()
len(Category.objects.all()) #output: 197
模型定义:
^{pr2}$
首先,我不建议您使用
len(Category.objects.all())
来计数对象。相反,您应该使用这不是风格问题,而是效率问题。后者使用sqlcount,因此对象的数量不是由python计算的,而是由您的数据库(mysql、sqlite等)计算的
我不能评论为什么你得到192个对象,而不是267个。我的猜测是因为你的
create
函数得到了一些不可用的参数——也许k
不是一个字符串,或者它的长度超过了100个字符。在你能调查一下哪些元素没有保存并提供这些信息吗?在
相关问题 更多 >
编程相关推荐