我在python GAE工作。在
不明白为什么我不能用[index]
从元组中提取值。从日志中,我可以看到我的leveloneAdd
变量中确实有一个值,例如('english'
,'subject'
)-但是当我循环使用我的元组1时,我的变量tag
和htype
中的值是空的,而我期望的是tag = 'english'
和{
有人有什么想法吗?在
for each in leveloneAdd:
tag = each[0]
htype = each[1]
q1 = Level_1_Headings.all().filter("name1 =",tag).filter("heading_type =",htype).get()
所以我按照Martijn的建议在日志中做了报告,下面是我的日志: 谢谢你的意见!我喜欢这个黑板——这是我的日志,使用了马蒂金的建议——我认为它像一根绳子一样解释了整个事情
^{pr2}$看起来字符串被视为字符串?如何将其转换为真正的元组读取。这是我的原始代码,应该在这里创建元组(然后它转到客户端,然后返回到日志中显示的那样)
对于h1中的x: listone.append((str(x.name1),str(x.heading_type)))
上面的值是输入选择下拉框形式
然后从服务器端python-我通过
级别添加=(self.request.获取全部(“list_uno[]”)
抱歉,如果这些看起来是基本的问题,我是一个初学者,试图变得更好!!在
F.C.说的是真的。在
我有点被单一元素与元组的问题弄糊涂了。如果基本问题只是检测是否有简单值或元组作为
leveloneAdd
的元素,那么也许您应该考虑将listoneAdd
作为一个元组列表,即使添加的是单个元素。这样,当您从列表中拉出一个元素时,您将始终知道您可以索引到它:屈服:
^{pr2}$如果
leveloneAdd == ('english', 'subject')
那么它不是一个元组的列表,它只是一个元组,因此each
在循环的每次迭代中都会以字符串作为值。在如果
leveloneAdd == [('english', 'subject')]
是一个包含元组的列表,那么您的代码可以正常工作。在如果可以的话,最好的选择是修复代码,这样leveloneAdd总是一个元组列表,如果不能这样做,那么当leveloneAdd是一个包含两个字符串的元组时,必须通过使leveloneAdd成为一个列表来修复它。小心,用所有的输入进行测试,因为在处理这种转换时很容易出错。在
在docs中说
get_all
应该返回一个列表,也许它只在有多个参数时才返回列表。如果是这种情况,您可以将值转换为列表(如果它是字符串):然后用','将leveloneAdd的值拆分
还要调整Javascript以避免使用诸如“(”和“'”等额外字符
试试这个:
如果不是元组,则会出现“太多值无法解包”错误。在
我看错了那篇文章
当我遇到这样的问题时,我通常会尝试以下方法:
^{pr2}$然后你会得到调试器,你可以看到“东西”是不是你认为的那样。在
根据OP,“thing”不是tuple而是unicode字符串。要解决您的问题,请转换为字符串,然后拆分该字符串。代码如下:
这假设您总是期望一个包含两个条目的元组。在
相关问题 更多 >
编程相关推荐