<p>几个问题:</p>
<ol>
<li><p>您在第一个<code>if</code>在<code>variant_category_item_qunatity</code>处有打字错误,应该是<code>quantity</code></p></li>
<li><p>您的<code>item</code>是无符号字符串的列表,因此必须与正确的类型进行比较。</p></li>
<li><p>我建议在dict中使用<code>update()</code>,这样更容易理解。。。</p></li>
</ol>
<p><strong>解决方法如下:</strong></p>
<pre><code>querydict = {u'variantcategoryitem_formset_0-0-variant_category_item_price': [u''], u'variantcategoryitem_formset_0-0-variant_category_item_quantity': [u''], u'variantcategoryitem_formset_0-0-variant_category_item_name': [u'hurray'], }
new_dict = {}
for key, value in querydict.iteritems():
# Need to check variant_category_item_qunatity or variant_category_item_price exists in the key, because as u can observe there will be many quantity, price fields in the querydict like variantcategoryitem_formset_0-0-variant_category_item_price, variantcategoryitem_formset_1-1-variant_category_item_price, etc.
if 'variant_category_item_quantity' in key:
# If key exists and if equal to ''(empty string) update the new-dict with this key and value as 0(same in case of price below)
if querydict[key] == [u'']:
new_dict.update({key: 0})
elif 'variant_category_item_price' in key:
if querydict[key] == [u'']:
new_dict.update({key: 0.0})
# Update the entire new_dict with remaining values
else:
new_dict.update({key:value})
print new_dict
</code></pre>
<p><strong>输出:</strong></p>
^{pr2}$