2017-09-27 49 views
1

我正在嘗試使用fetchall()作爲結果的字典。PyODBC結果到一本字典

我會盡力解釋我需要什麼;我有在Python下面的代碼:

conexiones = crsr_kala.execute("SELECT dst_srv, dst_db FROM info_skill_vdn_campana WHERE activo = 1 AND pbx = 'V2' GROUP BY dst_srv;").fetchall() 

而且這是在SQL中指出:

OUT

所以上的Python我想要一本字典,現在我有一個代碼:

col = [column[0] for column in conexiones] 
res = [] 
for row in conexiones: 
    res.append(dict(zip(col, row))) 
cox2 = collections.defaultdict(set) 
for d in res: 
    for k, v in d.iteritems(): 
     cox2[k].add(v) 

但是,這是輸出:

OUT

我想有以下出來:

{'172.59.xx.xx': set([PBX_es]), '172.65.xx.xx': set([PBX_pt]), '172.72.xx.xx': set([PBX_mx])} 

但是,我不知道如何編輯我的實際代碼有輸出。

請幫忙!

回答

1

你正在超越它。你首先建立了一個{'dst_srv': .., 'dst_db': ..}的列表,但你並不需要它。

cox2 = collections.defaultdict(set) 
for k,v in conexiones: 
    cox2[k].add(v) 
+0

它的工作原理!但是,你知道是否有辦法將設置的值更改爲str? – Urkidy

+0

設置爲str是什麼意思?像'{'1','2'}'到'1,2'? – Fabricator