擅长:python、mysql、java
<p>如果<code>leveloneAdd == ('english', 'subject')</code>那么它不是一个元组的列表,它只是一个元组,因此<code>each</code>在循环的每次迭代中都会以字符串作为值。在</p>
<p>如果<code>leveloneAdd == [('english', 'subject')]</code>是一个包含元组的列表,那么您的代码可以正常工作。在</p>
<p>如果可以的话,最好的选择是修复代码,这样leveloneAdd总是一个元组列表,如果不能这样做,那么当leveloneAdd是一个包含两个字符串的元组时,必须通过使leveloneAdd成为一个列表来修复它。小心,用所有的输入进行测试,因为在处理这种转换时很容易出错。在</p>
<p>在<a href="https://developers.google.com/appengine/docs/python/tools/webapp/requestclass#Request_get_all" rel="nofollow">docs</a>中说<code>get_all</code>应该返回一个列表,也许它只在有多个参数时才返回列表。如果是这种情况,您可以将值转换为列表(如果它是字符串):</p>
<pre><code>if isinstance(leveloneAdd, basestring):
leveloneAdd = [leveloneAdd]
</code></pre>
<p>然后用','将leveloneAdd的值拆分</p>
<p>还要调整Javascript以避免使用诸如“(”和“'”等额外字符</p>