2013-05-21 58 views
1

我有如下的解釋:刪除多個領域的關鍵在Redis的

dict1 = {"a":"foo","b":"bar","c":"foobar"} 

dict1的鑰匙在Redis的一個關鍵領域。我想使用hdel刪除Redis中的這些字段。我想知道是否可以一次發送多個字段到redis。

我想從dict1創建一個鍵列表並傳遞給redis.hdel,但它不起作用,我總是返回false。將appretiate任何幫助/建議。

list1 = [] 
key = "somerediskey" 
    for k in dict1: 
     list1.append(k) 
data = redis_connection.hdel(key, list1) 

回答

6

Python的Redis的LIB接受hdel(name, *keys),所以你應該做的:

data = redis_connection.hdel(key, *list1) 

而且,你不需要創建密鑰的列表,你可以用dict1.keys()

key = "somerediskey" 
data = redis_connection.hdel(key, *dict1.keys()) 

相關文檔:http://kushal.fedorapeople.org/redis-py/html/api.html#redis.StrictRedis.hdel

+0

非常感謝您的意見,使代碼更加簡單。如果我使用你提出的解決方案,那麼他們將如何獲得字典密鑰。除了一個特定的東西? – hjelpmig

+0

您可以刪除特定的鍵:'d = dict1.keys(); d.remove('yourkey')' – iurisilvio

+0

如果解決了您的問題,請將此答案標記爲正確。 – iurisilvio