如何将从查询返回的两个不同值存储到稍后要使用的列表数据类型中(plpy python)

时间:2011-03-13 22:39:26

标签: python postgresql plpy

我需要将从sql查询返回的两个值“id”和“name”存储到一个我以后可以使用的变量中。我可以将列表用于此目的吗?我想立即存储sql中的值,然后只引用存储的值。我能够这样做,但只有一个值(id),但现在我需要将id和name存储在一起。目的是进行字符串比较,并在此基础上,分配相应的id。

例如,首先我尝试从数据库中检索数据  rv = plpy.execute(从aa中选择id,名称) 现在我需要将这两个值存储在两个变量中,例如,让我们说storevalueID中的id和storevalueName中的name,所以稍后我可以做类似的事情, 如果someXname = Replace(storeValueName(“hello”,“”))则 将其关注的id分配给某些可变的lile xID = storevalueID,  我不确定我们能做到这一点,但我需要做这样的事情。

任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:1)

我不确定我完全理解你的问题。但如果您之前存储的是“id”列表:

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

所以mylist就像[1,2,3],然后你可以简单地使用元组来存储多个关联在一起的元素:

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

现在mylist就像[ (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']

使用列名。有关详细信息,请参阅this page