如何将查询返回的两个不同值存储到列表中以供后用(plpy python)

0 投票
1 回答
743 浏览
提问于 2025-04-16 13:37

我需要把从数据库查询中得到的两个值,“id”和“name”,存储到一个变量里,以便后面使用。我想知道能不能用列表来实现这个目的。我想一次性把从数据库中获取的值存起来,然后只需要引用存储的值就可以了。我之前能做到这一点,但只存了一个值(id),现在我需要把id和name一起存起来。这样做的目的是为了进行字符串比较,然后根据比较的结果来分配对应的id。

比如说,我最开始是通过以下方式从数据库中获取数据的:
rv = plpy.execute (select id,name from aa)
现在我需要把这两个值存到两个变量里,比如说,把id存到storevalueID,把name存到storevalueName,这样我就可以做一些操作,比如:
如果某个名字(someXname)等于替换后的storeValueName("hello",""),那么就把对应的id赋值给某个变量,比如xID = storevalueID。
我不太确定这样做是否可行,但我需要做类似的事情。

任何帮助都会很感激..

1 个回答

1

我不太确定我完全理解你的问题。不过,如果你之前存储的是一组“id”的话:

mylist = []
mylist.append(id1)  # or however you get your id values
mylist.append(id2)
# ..

那么我的列表可能是这样的 [1, 2, 3],你可以简单地使用元组来存储多个相关联的元素:

mylist = []
mylist.append( (id1, name1) )
mylist.append( (id2, name2) )
# ..

现在我的列表变成了 [ (1, 'Bob'), (2, 'Alice'), (3, 'Carol')]。你可以对每个元组中的第二个元素进行字符串比较:

mylist[0][1] == 'Bob'  # True
mylist[1][2] == 'Alice'  # True

更新 我刚看到更新后的问题。在 plypy 中,你应该可以这样访问变量:

for row in rv:
    the_id = row['id']
    name = row['name']

使用列名。更多信息请查看 这个页面

撰写回答