我将在前言中提到我不是Python编码器,我只是一起攻击这个以便快速检查我的Android应用程序的数据库。那我想把它变成我网页的脚本。除此之外,我无法弄清楚为什么for-statement之外的代码在内部不起作用。看起来行和行2是相同的。它在第一个中拉出“初学者”表名,但不会在循环中。谢谢您的帮助。
row = "(u'beginner',)"
print row
temp = re.search('\(u\'(.*)\',\)', row).group(1)
print temp
#getRows is a cursor fetch on a sqlite DB if that matters
for row2 in getRows:
print row2
temp = re.search('\(u\'(.*)\',\)', row2).group(1)
print temp
输出:
Finding files... done.
Importing test modules ...
(u'beginner',)
beginner
(u'beginner',)
done.
在0.000秒内进行0次测试
行
答案 0 :(得分:2)
我知道它为什么不起作用:因为虽然row和row2的字符串表示是相同的,但它们实际上并不完全相同。尝试打印type(row2)
,你会发现它是一个元组。我知道这是因为DB API会返回一个元组,而不是一个看起来像元组的字符串。
所以当你有这个:
row = "(u'beginner',)"
这是一个看起来像元组的字符串,你可以重新搜索它。但是你不应该这样做 - 在数据库行中,你应该只通过row2[0]
得到字符串内容,而不是使用re。