我一直在胡闹网页.py最近想从数据库中获取一些数据,然后它会返回一个“存储”对象。我用来调用我的信息的代码是:
db = web.database(dbn='sqlite', db='sqlfile.sqlite')
sely = db.select('carp', order="id ASC")
当sely运行时,它会给我这样的文本:
<Storage {'lvl': 0, 'symbol': u'formb', 'logged': u'false', 'id': 1, 'display': u'Classic'}>
当你打印出来时,存储线就出来了。我怎样才能从这个对象中取出词典?在
Python处理未知api的一个通用技巧是使用^{} builtin 。在解释器中尝试
dir(sely)
,看看为您得到的对象定义了哪些成员变量和函数。在list(sely)
将结果转换为列表,并通常在循环中迭代对象。在__getitem__
的内容,那么您可以索引到该对象并希望获得一个值。在作为补充说明,我刚刚试用了您的代码,并将
sely
作为web.utils.IterBetter
实例(返回0行,而不是本例中预期的3行)。所以我真的不能重现你的问题(可以说,我也有自己的问题)。在sely
将是存储的list
,storage
与{obj.key
而不是{dict(obj)
将storage
转换成{在windows中
return list(db.select('top',what='score',where="name = $id",vars=locals())
没问题。你可以得到分数的值。在
但是
在ubuntu中
你应该这样做
db.select('top',what='score',where="name = $id",vars=locals())[0]["score"]
我不知道为什么,但它在我的电脑里工作
相关问题 更多 >
编程相关推荐