网页.py数据库选择访问

2024-06-03 02:41:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在胡闹网页.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'}>

当你打印出来时,存储线就出来了。我怎样才能从这个对象中取出词典?在


Tags: 数据对象代码pyweb信息id数据库
3条回答

Python处理未知api的一个通用技巧是使用^{} builtin。在解释器中尝试dir(sely),看看为您得到的对象定义了哪些成员变量和函数。在

  • 如果看到类似^{}的内容,可以调用list(sely)将结果转换为列表,并通常在循环中迭代对象。在
  • 如果您看到类似__getitem__的内容,那么您可以索引到该对象并希望获得一个值。在

作为补充说明,我刚刚试用了您的代码,并将sely作为web.utils.IterBetter实例(返回0行,而不是本例中预期的3行)。所以我真的不能重现你的问题(可以说,我也有自己的问题)。在

db = web.database(dbn='sqlite', db='sqlfile.sqlite')
sely = db.select('carp', order="id ASC").list()

sely将是存储的liststorage与{}相同,但是可以使用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"]

我不知道为什么,但它在我的电脑里工作

相关问题 更多 >