gpt4 book ai didi

python - web.py select 不返回结果,但该列表的长度确实返回(sql promt 中的手动查询也返回结果)

转载 作者:行者123 更新时间:2023-11-29 20:19:24 25 4
gpt4 key购买 nike

我正在开发我的第一个(更大的)Python 应用程序,但遇到了一些问题。我正在尝试使用 web.py 导入从表中选择条目(我使用它是因为稍后我将使用 Web 前端)。

下面是我的(简化的)代码:

db = web.database(dbn='mysql', host='xxx', port=3306, user='monitor', pw='xxx', db='monitor')
dict = dict(hostname=nodeName)
#nodes = db.select('Nodes', dict,where="hostName = $hostname")
nodes = db.query('SELECT * FROM Nodes') <-- I have tried both, but have comparable results (this returns more entries)
length = len(list(nodes))
print(length)
print(list(nodes))
print(list(nodes)[0])

下面是 python 的输出:

0.03 (1): SELECT * FROM Nodes
6 <-- Length is correct
[] <-- Why is this empty?
Traceback (most recent call last):
File "monitor.py", line 30, in <module>
print(list(nodes)[0]) <-- If it is empty I can't select first element
IndexError: list index out of range

下面是 mySQL 输出:

mysql> select * from monitor.Nodes;
+--------+-------------+
| nodeId | hostName |
+--------+-------------+
| 1 | TestServer |
| 2 | raspberryPi |
| 3 | TestServer |
| 4 | TestServer |
| 5 | TestServer |
| 6 | TestServer |
+--------+-------------+
6 rows in set (0.00 sec)

结论:表包含条目,并且 select/query 语句能够部分获取它们(它获取长度,但不是实际值?)

我已经尝试了多种方法,但目前我无法得到我想要的。我想从表中选择数据并在代码中使用它。

感谢您的帮助

最佳答案

感谢 reddit 上的人们,我能够解决这个问题:https://www.reddit.com/r/learnpython/comments/53hdq1/webpy_select_returning_no_results_but_length_of/

底线是:查询方法的实现已经获取了数据,因此第二次调用 list(nodes) 时数据已经消失,因此结果为空。

解决方案是将列表(节点)存储在变量中并从中工作。

关于python - web.py select 不返回结果,但该列表的长度确实返回(sql promt 中的手动查询也返回结果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com