0

我将首先说明我不是 Python 编码器,我只是为了快速检查我的 Android 应用程序的数据库而将其组合在一起。那我想把它变成我网页的脚本。除此之外,我无法弄清楚为什么 for 语句之外的代码可以工作,而内部却不行。看来 row 和 row2 是相同的。它首先会很好地提取“初学者”表名,但不会在循环中。谢谢您的帮助。

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 次测试

好的

4

1 回答 1

2

我知道为什么它不起作用:因为虽然 row 和 row2 的字符串表示形式相同,但它们根本不一样。尝试打印type(row2),你会看到它是一个元组。我知道这一点是因为 DB API 会返回一个元组,而不是一个看起来像元组的字符串。

所以当你有这个时:

row = "(u'beginner',)"

这是一个看起来像元组的字符串,你可以重新搜索它。但是您不应该这样做——在 DB 行中,您应该只获取字符串内容row2[0]而不使用 re 。

于 2013-10-12T02:13:25.940 回答